DCloud_App_Array
DCloud_App_Array
  • 发布:2018-09-20 21:23
  • 更新:2019-11-06 16:36
  • 阅读:9105

5+App升级iOS12系统后应用可能崩溃的解决方案

分类:HTML5+

部分开发者反馈app在iOS12上会崩溃,而同样代码在iOS12以下的手机正常。但也并非所有代码写法都会引发崩溃。
苹果最新的策略在iOS12及以后系统将不再维护UIWebview内核,都推荐改为WKWebview。
目前5+App、wap2app打包时,默认是UIWebview。uni-app默认是WKWebview。
所以5+App、wap2app的开发者,如果遇到iOS12的兼容问题,有如下方案:

1. 将app的iOS webview内核更改为WKWebview

在manifest.json的plus->kernel->ios节点中配置默认使用WKWebviwe内核:

//...  
"plus": {  
        "kernel": {  
            "ios": "WKWebview"  
        },  
        //...  
}

注意:

  1. 目前使用WKWebview内核不支持“启用js原生混淆”功能,云端打包iOS时不要勾选此项配置。
  2. wgt资源加密要注意,iOS一旦使用WKWebview也不支持解压加密的wgt资源。
  3. WKWebview里HTML5的存储如cookie、localstorage等和UIWebview不互通,应用升级后,手机端老的cookie等数据拿不到了。
  4. WKWebview不支持overrideresource。

2. 优化代码写法,避免崩溃

如果代码里有容易引发内存占用且没有回收的代码,比如不停运行的计时器,在UIWebview下更容易崩溃。
在js里不停大范围修改整体dom引发不停重布局,也容易崩溃。

如果配置为WKWebviw内核还存在闪退问题,请提供出现问题的ipa,并详细说明操作出现闪退的步骤。

另,由于一个三方库和iOS12的模拟器冲突了,HBuilde早期版本在真机运行到iOS12模拟器会无法启动,请升级到最新版。此问题不影响真机。

4 关注 分享
Trust 萧 skysowe 淘淘公子

要回复文章请先登录注册

首席劝退师

首席劝退师

回复 uniapper :
为啥不行呀
2019-11-06 16:36
1***@qq.com

1***@qq.com

回复 DCloud_App_Array :
配置成wkwebview.加载一个游戏网页还是会出现问题,不知道解决没有,使用的是最新版本hbuilderx打包ipa
2019-04-06 10:48
1***@qq.com

1***@qq.com

回复 DCloud_heavensoft :
配置成wkwebview.加载一个游戏网页还是会出现问题,不知道解决没有
2019-04-06 10:47
DCloud_App_Array

DCloud_App_Array (作者)

回复 h***@163.com :
请更新到最新版本HBuilderX: http://www.dcloud.io/hbuilderx.html
2018-11-09 11:04
h***@163.com

h***@163.com

不好用啊,hbuilder上iphone模拟器上还是闪退 。。
2018-11-09 09:29
uniapper

uniapper

上面官方教程写的不对:
应该时
plus ->launchwebview
下面添加一个项:
"kernel": "WKWebview"
2018-10-24 04:09
时光可见

时光可见

还是闪退,hbuilder上根本就没解决这个问题。hbuilderx上倒是可以在模拟器上运行,但是hbuilder不懂怎么导入git项目,不想用hbuilderx。这个问题怎么处理啊
2018-10-23 23:21
DCloud_App_Array

DCloud_App_Array (作者)

回复 zk998 :
在iphone模拟器是另外一个原因,最新版本HBuilderX已修复此问题
2018-10-12 17:48
cydida

cydida

回复 zk998 :
急需解决这个问题
2018-10-11 12:54
uniapper

uniapper

mark
2018-09-28 11:48