Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
f380bb61
U
uni-app
项目概览
DCloud
/
uni-app
4 个月 前同步成功
通知
726
Star
38705
Fork
3642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
7
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
7
Issue
7
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f380bb61
编写于
10月 31, 2019
作者:
M
mehaotian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: webview
上级
75234f8f
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
104 addition
and
0 deletion
+104
-0
src/platforms/app-plus/view/components/web-view/index.vue
src/platforms/app-plus/view/components/web-view/index.vue
+104
-0
未找到文件。
src/platforms/app-plus/view/components/web-view/index.vue
0 → 100644
浏览文件 @
f380bb61
<
template
>
<uni-web-view
/>
</
template
>
<
script
>
let
webview
=
false
const
insertHTMLWebView
=
({
htmlId
})
=>
{
const
parentWebview
=
plus
.
webview
.
currentWebview
()
// fixed by hxy web-view 组件所在的 webview 不注入 uni-app 框架
const
styles
=
{
'
uni-app
'
:
'
none
'
}
const
parentTitleNView
=
parentWebview
.
getTitleNView
()
if
(
parentTitleNView
)
{
styles
.
top
=
44
+
plus
.
navigator
.
getStatusbarHeight
()
styles
.
bottom
=
0
}
webview
=
plus
.
webview
.
create
(
''
,
htmlId
,
styles
)
if
(
parentTitleNView
)
{
webview
.
addEventListener
(
'
titleUpdate
'
,
function
()
{
let
title
=
webview
.
getTitle
()
parentWebview
.
setStyle
({
titleNView
:
{
titleText
:
(
!
title
||
title
===
'
null
'
)
?
''
:
title
}
})
})
}
plus
.
webview
.
currentWebview
().
append
(
webview
)
}
const
updateHTMLWebView
=
({
htmlId
,
src
,
webviewStyles
})
=>
{
// fixed by xxx 非空时才执行更新操作
const
realPath
=
src
||
''
if
(
!
realPath
)
{
return
}
if
(
/^
(
http|https
)
:
\/\/
/
.
test
(
realPath
)
&&
webviewStyles
.
progress
)
{
webview
.
setStyle
({
progress
:
{
color
:
webviewStyles
.
progress
.
color
}
})
}
webview
.
loadURL
(
realPath
)
}
const
removeHTMLWebView
=
()
=>
{
plus
.
webview
.
currentWebview
().
remove
(
webview
)
webview
.
close
(
'
none
'
)
webview
=
false
}
export
default
{
name
:
'
WebView
'
,
props
:
{
src
:
{
type
:
String
,
default
:
''
},
webviewStyles
:
{
type
:
Object
,
default
()
{
return
{}
}
}
},
watch
:
{
src
(
val
,
oldVal
)
{
webview
&&
updateHTMLWebView
({
src
:
this
.
$getRealPath
(
val
),
webviewStyles
:
this
.
webviewStyles
})
}
},
mounted
()
{
this
.
htmlId
=
'
webviewId
'
+
this
.
$page
.
id
insertHTMLWebView
({
htmlId
:
this
.
htmlId
})
updateHTMLWebView
({
src
:
this
.
$getRealPath
(
this
.
src
),
webviewStyles
:
this
.
webviewStyles
})
},
beforeDestroy
()
{
removeHTMLWebView
()
}
}
</
script
>
<
style
>
uni-web-view
{
position
:
absolute
;
left
:
0
;
right
:
0
;
top
:
0
;
bottom
:
0
;
}
</
style
>
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录