Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
genary
uni-app
提交
211890b6
U
uni-app
项目概览
genary
/
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,发现更多精彩内容 >>
提交
211890b6
编写于
6月 27, 2022
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(iOS): auto recovery when webview crash
上级
fef21589
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
18 addition
and
10 deletion
+18
-10
packages/uni-app-plus/dist/uni.runtime.esm.js
packages/uni-app-plus/dist/uni.runtime.esm.js
+8
-4
packages/uni-app-plus/src/service/framework/app/subscriber/webviewReady.ts
...plus/src/service/framework/app/subscriber/webviewReady.ts
+8
-5
packages/uni-app-plus/src/service/framework/dom/Page.ts
packages/uni-app-plus/src/service/framework/dom/Page.ts
+2
-1
未找到文件。
packages/uni-app-plus/dist/uni.runtime.esm.js
浏览文件 @
211890b6
...
...
@@ -18296,7 +18296,8 @@ class UniPageNode extends UniNode {
}
restore() {
this.clear();
this.push(this.createAction);
// createAction 需要单独发送,因为 view 层需要现根据 create 来设置 page 的 ready
this.setup();
if (this.scrollAction) {
this.push(this.scrollAction);
}
...
...
@@ -19498,10 +19499,13 @@ function subscribeWebviewReady(_data, pageId) {
// preloadWebview 不存在,重新加载一下
setPreloadWebview(plus.webview.getWebviewById(pageId));
}
if (preloadWebview$1.id !== pageId) {
return console.error(`webviewReady[${preloadWebview$1.id}][${pageId}] not match`);
// 仅当 preloadWebview 未 loaded 时处理 (iOS崩溃也会继续走到这里,此时 preloadWebview 通常是 loaded 的,且两者 id 肯定不一样)
if (!preloadWebview$1.loaded) {
if (preloadWebview$1.id !== pageId) {
return console.error(`webviewReady[${preloadWebview$1.id}][${pageId}] not match`);
}
preloadWebview$1.loaded = true; // 标记已 ready
}
preloadWebview$1.loaded = true; // 标记已 ready
UniServiceJSBridge.emit(ON_WEBVIEW_READY + '.' + pageId);
isLaunchWebview && onLaunchWebviewReady();
}
...
...
packages/uni-app-plus/src/service/framework/app/subscriber/webviewReady.ts
浏览文件 @
211890b6
...
...
@@ -22,12 +22,15 @@ export function subscribeWebviewReady(_data: unknown, pageId: string) {
// preloadWebview 不存在,重新加载一下
setPreloadWebview
(
plus
.
webview
.
getWebviewById
(
pageId
))
}
if
(
preloadWebview
.
id
!==
pageId
)
{
return
console
.
error
(
`webviewReady[
${
preloadWebview
.
id
}
][
${
pageId
}
] not match`
)
// 仅当 preloadWebview 未 loaded 时处理 (iOS崩溃也会继续走到这里,此时 preloadWebview 通常是 loaded 的,且两者 id 肯定不一样)
if
(
!
preloadWebview
.
loaded
)
{
if
(
preloadWebview
.
id
!==
pageId
)
{
return
console
.
error
(
`webviewReady[
${
preloadWebview
.
id
}
][
${
pageId
}
] not match`
)
}
;(
preloadWebview
as
any
).
loaded
=
true
// 标记已 ready
}
;(
preloadWebview
as
any
).
loaded
=
true
// 标记已 ready
UniServiceJSBridge
.
emit
(
ON_WEBVIEW_READY
+
'
.
'
+
pageId
)
isLaunchWebview
&&
onLaunchWebviewReady
()
}
...
...
packages/uni-app-plus/src/service/framework/dom/Page.ts
浏览文件 @
211890b6
...
...
@@ -234,7 +234,8 @@ export default class UniPageNode extends UniNode implements IUniPageNode {
}
restore
()
{
this
.
clear
()
this
.
push
(
this
.
createAction
)
// createAction 需要单独发送,因为 view 层需要现根据 create 来设置 page 的 ready
this
.
setup
()
if
(
this
.
scrollAction
)
{
this
.
push
(
this
.
scrollAction
)
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录