DCloud_IOS_XTY
DCloud_IOS_XTY
  • 发布:2019-11-01 18:23
  • 更新:2024-01-31 12:29
  • 阅读:14302

iOS平台5+APP/WAP2APP使用WKWebview内核时由于内核崩溃引起白屏后自动恢复的方法

分类:HTML5+
h5+

HBuilderX 2.3.4+版本已将iOS上所有webview的默认内核由UIWebview调整为WKWebview请参考https://ask.dcloud.net.cn/article/36348,
当内存占用过大或者应用切换到后台内存被回收会导致WKWebview内核Crash引起应用白屏,为了提高体验App支持Crash后的恢复,开发者可以通过简单的配置支持该功能。
####注意
目前该功能针对在前台的应用,如果应用在后台时会直接重新启动不适用该规则
uniapp有自己的恢复逻辑不适用该规则
####支持的恢复行为

  • "restart"
    重启应用,关闭所有页面重新打开应用首页,可通过(plus.runtime.isRecovery)来判断应用是否恢复重启
  • "reload"
    重新加载当前WKWebview(崩溃的WKWebview)页面,页面中JS上下文中所有数据丢失,在当前Webview中可通过plus.webview.isRecovery判断是否恢复重新加载,在其它Webview中可监听recovery事件来判断
  • "none"
    不做任何操作

####全局配置
manifest.json中配置默认值

	"plus": {  //uni-app项目对应节点名称为"app-plus"  
		"kernel": {  
			"ios": "WKWebview",  
			"recovery": "restart|reload|none"  
		},  
		// ...  
	}

####webview配置
webview style新增kernelRecovery属性
通过该项可以自定义单个webview的恢复行为,覆盖全局配置
引用文档
#####示例

var webview = plus.webview.create("[url]","[id]", {kernelRecovery:"restart|reload|none"});

####API
plus.webview.isRecovery
用于判断当前Webview窗口是否由于内核崩溃自动恢复,当配置reload时生效
引用文档

plus.runtime.isRecovery
用于判断当前应用是否是Webview崩溃自动恢复导致的启动,当配置restart时生效
引用文档

####事件
recovery
当恢复行为配置为reload时,webview重新创建完成后会触发该事件,可以监听该事件做具体处理
引用文档

4 关注 分享
DCloud_iOS_XHY 3***@qq.com 穷鬼溪风 rysnone

要回复文章请先登录注册

yangyuanlife

yangyuanlife

拍照重新页面重新加载要怎么恢复拍摄的照片呀
2024-01-31 12:29
1***@qq.com

1***@qq.com

uniapp 项目vue页面 ios 息屏进入后台过一阵进入前台还是会白屏崩溃啊 加了"kernel": {
"ios": "WKWebview",
"recovery": "restart|reload|none"
}, 无效果啊
2023-12-04 14:54
veichi

veichi

回复 刘超群 :
2023 8月还是没解决 弃坑吧
2023-08-07 12:26
veichi

veichi

配置 "recovery": "restart|reload|none" 根本没用 还是照样崩
2023-08-07 12:26
加勒比路飞

加勒比路飞

plus.runtime.isRecovery 为何返回的是undefined
2023-04-06 17:16
正能量10086

正能量10086

我的在ios上面切换后台再回来,布局会乱,整体尺寸变小,横屏应用,版本3.6.4.20220922
2022-11-28 13:56
刘超群

刘超群

都两年了还没解决?这个问题该怎么解决啊,坑太多了
2022-11-24 11:50
碎叶城

碎叶城

回复 t***@ledreamer.com :
请问解决了吗?
2022-11-09 18:15
爱吃鱼的靖哥哥

爱吃鱼的靖哥哥

回复 t***@ledreamer.com :
我的也是,不知道怎么处理,急死了
2022-09-23 09:16
小小白啊

小小白啊

hx:3.6.3 ,vue3+uniapp 依旧有问题。
2022-09-21 09:05