Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
靖轩达人
uni-app
提交
578bc80c
U
uni-app
项目概览
靖轩达人
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
578bc80c
编写于
11月 21, 2019
作者:
Q
qiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: 调整模板页通讯方式
上级
ca57c58e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
31 addition
and
65 deletion
+31
-65
src/platforms/app-plus/service/api/page.js
src/platforms/app-plus/service/api/page.js
+31
-65
未找到文件。
src/platforms/app-plus/service/api/page.js
浏览文件 @
578bc80c
let
plus_
let
weex_
let
uni_
let
runtime
let
BroadcastChannel_
function
getRuntime
()
{
return
runtime
||
(
runtime
=
typeof
window
===
'
object
'
&&
typeof
navigator
===
'
object
'
&&
typeof
document
===
'
object
'
?
'
webview
'
:
'
v8
'
)
}
function
setRuntime
(
value
)
{
runtime
=
value
return
typeof
window
===
'
object
'
&&
typeof
navigator
===
'
object
'
&&
typeof
document
===
'
object
'
?
'
webview
'
:
'
v8
'
}
function
getPageId
()
{
return
plus_
.
webview
.
currentWebview
().
id
}
let
initedEventListener
=
false
let
channel
const
callbacks
=
{}
function
addEventListener
(
pageId
,
callback
)
{
const
runtime
=
getRuntime
()
function
onPlusMessage
(
res
)
{
const
message
=
res
.
data
&&
res
.
data
.
__message
if
(
!
message
||
!
message
.
__page
)
{
return
}
const
pageId
=
message
.
__page
const
callback
=
callbacks
[
pageId
]
callback
&&
callback
(
message
)
if
(
!
message
.
keep
)
{
delete
callbacks
[
pageId
]
}
function
onPlusMessage
(
res
)
{
const
message
=
res
.
data
&&
res
.
data
.
__message
if
(
!
message
||
!
message
.
__page
)
{
return
}
if
(
!
initedEventListener
)
{
if
(
runtime
===
'
v8
'
)
{
const
globalEvent
=
weex_
.
requireModule
(
'
globalEvent
'
)
globalEvent
.
addEventListener
(
'
plusMessage
'
,
onPlusMessage
)
}
else
if
(
runtime
===
'
v8-native
'
)
{
uni_
.
$on
(
getPageId
(),
onPlusMessage
)
}
else
{
window
.
__plusMessage
=
onPlusMessage
}
initedEventListener
=
true
const
pageId
=
message
.
__page
const
callback
=
callbacks
[
pageId
]
callback
&&
callback
(
message
)
if
(
!
message
.
keep
)
{
delete
callbacks
[
pageId
]
}
}
function
addEventListener
(
pageId
,
callback
)
{
if
(
getRuntime
()
===
'
v8
'
)
{
channel
&&
channel
.
close
()
channel
=
new
BroadcastChannel_
(
getPageId
())
channel
.
onmessage
=
onPlusMessage
}
else
{
window
.
__plusMessage
=
onPlusMessage
}
callbacks
[
pageId
]
=
callback
}
...
...
@@ -55,19 +41,13 @@ class Page {
this
.
webview
=
webview
}
sendMessage
(
data
)
{
const
runtime
=
getRuntime
()
const
message
=
{
__message
:
{
data
}
}
if
(
runtime
===
'
v8-native
'
)
{
uni_
.
$emit
(
this
.
webview
.
id
,
{
data
:
JSON
.
parse
(
JSON
.
stringify
(
message
))
})
}
else
{
plus_
.
webview
.
postMessageToUniNView
(
message
,
this
.
webview
.
id
)
}
const
channel
=
new
BroadcastChannel_
(
this
.
webview
.
id
)
channel
.
postMessage
(
message
)
}
close
()
{
this
.
webview
.
close
()
...
...
@@ -75,31 +55,17 @@ class Page {
}
export
function
showPage
({
context
,
runtime
,
context
=
{},
url
,
data
=
{},
style
=
{},
onMessage
,
onClose
})
{
if
(
context
)
{
plus_
=
context
.
plus
weex_
=
context
.
weex
uni_
=
context
.
uni
}
else
{
// eslint-disable-next-line
plus_
=
typeof
plus
===
'
object
'
?
plus
:
null
// eslint-disable-next-line
weex_
=
typeof
weex
===
'
object
'
?
weex
:
null
// eslint-disable-next-line
uni_
=
typeof
uni
===
'
object
'
?
uni
:
null
}
if
(
runtime
)
{
setRuntime
(
runtime
)
}
else
{
runtime
=
getRuntime
()
}
// eslint-disable-next-line
plus_
=
context
.
plus
||
plus
// eslint-disable-next-line
BroadcastChannel_
=
context
.
BroadcastChannel
||
BroadcastChannel
const
titleNView
=
{
autoBackButton
:
true
,
titleSize
:
'
17px
'
...
...
@@ -118,7 +84,7 @@ export function showPage ({
animationType
:
'
pop-in
'
,
animationDuration
:
200
,
uniNView
:
{
path
:
`
${(
typeof
process
===
'
object
'
&&
process
.
env
&&
process
.
env
.
VUE_APP_TEMPLATE_PATH
)
||
''
}
/
${
url
}
.js`
,
path
:
`
${(
typeof
process
===
'
object
'
&&
process
.
env
&&
process
.
env
.
VUE_APP_TEMPLATE_PATH
)
||
'
/template
'
}
/
${
url
}
.js`
,
defaultFontSize
:
plus_
.
screen
.
resolutionWidth
/
20
,
viewport
:
plus_
.
screen
.
resolutionWidth
}
...
...
@@ -127,7 +93,7 @@ export function showPage ({
const
page
=
plus_
.
webview
.
create
(
''
,
pageId
,
style
,
{
extras
:
{
from
:
getPageId
(),
runtime
:
runtime
,
runtime
:
getRuntime
()
,
data
}
})
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录