DCloud_App_Array
DCloud_App_Array
  • 发布:2019-09-02 21:04
  • 更新:1 天前
  • 阅读:3993

Appstore审核反馈废弃UIWebview APIs问题的说明

分类:HTML5+

iOS有UIWebview和WKWebview两种webview。从iOS13开始苹果将UIWebview列为过期API。

目前提交苹果应用市场(AppStore)会反馈以下邮件提示:

ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that use UIWebView APIs .  
See https://developer.apple.com/documentation/uikit/uiwebview for more information.

以上信息是苹果告诉开发者未来将会停止使用UIWebview的应用上线,暂时还没有准确的停止时间(预计至少会留一段过渡时间)。目前还可以继续使用并提交AppStore。
我们会随时了解苹果应用市场的审核政策,及时更新,确保符合应用市场的审核要求

HBuilder、HBuilderX 2.2.5之前,项目按以下规则使用:

  • 5+ APP(含wap2app)
    默认为UIWebview,HBuilderX2.2.5版本将会调整为默认WKWebview。
  • uni-app
    默认为WKWebview。

HBuilderX 2.2.5+版本已将iOS上所有webview的默认值均改为WKWebview。

5+App(含wap2app)如何将UIWebview改为WKWebview?

如果你的老项目,想切换Webview,现在也是可以的。

在manifest.json源码视图中修改plus -> kernel -> ios 的值为 WKWebview。具体参考 manifest手册,在其中搜索“WKWebview”

    "plus": {  //uni-app项目对应节点名称为"app-plus"  
        "kernel": {  
            "ios": "UIWebview"    //或者 "WKWebview"  
        },  
        // ...  
    }

HBuilderX 2.2.5+版本会将iOS上所有webview的默认值均改为WKWebview,无需手动设置。但如果想在新版HBuilderX中使用UIWebview,则需要手动配置。

使用WKWebview的影响

使用WKWebview替换UIWebview将会影响以下功能:

  • 更严格的跨域访问限制,WKWebview认为本地html调用ajax访问网络及本地不同目录文件都算跨域访问(这种情况UIWebview不是跨域),所以WKWebview调用ajax跨域访问会失败,这时只能使用5+ API(plus.net)替换。使用exif.js等三方库可能涉及跨目录的本地图片下载请求,需要注意调整。
  • 由于WKWebview不支持跨域访问,mui框架中网络请求判断为跨域访问会自动调用5+ API(plus.net),如果在mui.plusReady触发前调用,因为5+ API没有准备好会报“Script error.filename:lineno:0”错误,这时必须保证mui的网络请求在mui.pusReady后调用。
  • 不支持websql(iOS8、9上不支持,iOS10恢复支持)
  • 不支持plus.navigator.setCookie
  • 不支持webview的overrideresource方法
  • wk第一次渲染速度略慢于uiwebview;
  • 由于资源拦截的API overrideresource 无法再使用,5+ APP(含wap2app)项目中,云打包时的js原生混淆功能会失效。如果要使用js原生混淆必须使用UIWebview。uni-app后续会提供单独的原生js加密方案。

但wkwebview的好处是:节省内存、滚动时懒加载的图片也可以实时渲染而uiwebview在滚动停止后懒加载的图片才能显示。

如果同时在一个app里使用ui和wk两种webview,注意2种webview之间的cookie、localstorage、session不共享,但plus.storage是共享的。

uni-app中Webview的使用注意

虽然uni-app的页面默认是wkwebview。但也有漏网之鱼,见下:

uni-app的vue页面的web-view组件是UIWebview

如果需将web-view组件调整为WKWebview,将manifest.json源码视图的app-plus -> kernel -> ios 的值设为 WKWebview。

HBuilderX 2.2.5+版本已经将iOS上所有webview的默认值均改为WKWebview,无需手动设置。

nvue页面

nvue页面不使用webview渲染,但其中的web-view组件说明如下。

  • nvue的weex 组件模式
    weex模式下的web-view组件是weex自己实现的,它目前仍然使用UIWebview。官方会追踪weex的升级。
  • nvue的uni-app组件模式
    web-view组件使用WKWebview

三方SDK中UIWebview的使用

目前如下SDK中仍然使用了UIWebview,不管是5+App还是uni-app。

  • DCloud开屏广告
    点击广告打开的内置网页仍然使用UIWebview加载。HBuilderX2.2.5版本已调整改为WKWebview。
  • 微信登录
  • 微博登录
  • QQ登录

这些SDK仍然使用了UIWebview,官方会持续关注相关SDK的更新状态,尽快同步更新。

由于这些SDK涉及面太广,相信苹果后续会给出明确的过渡政策。DCloud会一直追踪,并调整产品策略。

目前建议开发者首先确保自己的业务在WKWebview下可正常使用。然后等待苹果的进一步通知。

最后,开发者虽然在应用层可避免使用UIwebview,但App引擎底层仍然留有UIWebview的调用选项代码,所以Appstore机审时可能仍然会提示ipa包中包含UIWebview,这种情况不用理会,实际上没有使用。

0 关注 分享

要回复文章请先登录注册

17753173678@189.cn

17753173678@189.cn

刚才去mainfest.json文件中搜索了下下面这个区域,完全没有搜到。我项目是16年时候建立的H5+APP。HBX版本是2.2.2.20190816.
"plus": { //uni-app项目对应节点名称为"app-plus"
"kernel": {
"ios": "UIWebview" //或者 "WKWebview"
},
// ...
}
1 天前
david5901211@163.com

david5901211@163.com

最新版本,。说解决了深色跳转闪白的问题,但是测试的时候还是存在闪白哦。
1 天前
DCloud_heavensoft

DCloud_heavensoft

回复 ssnet:
wkwebview也支持schema,只是不能拦截别人的url换成你想改的地址了
2 天前
ssnet

ssnet

换成WKWebview之后,不能唤醒第三方app,比如webview中打开京东淘宝的链接,不能弹出京东淘宝的app来显示这个链接,这样用户还要继续在webview中输入密码登录下单,转化率降低很多很多。强制用uiwebview又会被苹果拒,这个怎么破?
2 天前
小明子

小明子

关注一下
3 天前
DCloud_heavensoft

DCloud_heavensoft

回复 120128677@qq.com:
拒绝?只是提示而已。如果你的app被拒,应该是其他原因。最新alpha是什么版本?是2.2.5还是2.2.6?
6 天前
120128677@qq.com

120128677@qq.com

回复 120128677@qq.com:
阿尔法最新版本也试过
6 天前
120128677@qq.com

120128677@qq.com

项目是uni-app的,也没有用web-view,nvue, 和第三方SDK。但提交审核一直还是说有UIWebView API被拒绝
6 天前
DCloud_App_Array

DCloud_App_Array (作者)

回复 490692118@qq.com:
请把详细的回复邮件发出来
2019-09-09 11:28
490692118@qq.com

490692118@qq.com

现在被检测出来使用uiwebviewAPI的应用已经不能通过审核上架了,说提醒,但是已经强制不能使用了,求解决啊~~!!!!
2019-09-09 09:35
fenxianggou1@163.com

fenxianggou1@163.com

但是现在不把uiwebview 剔除的话,不让审核上架,该怎么处理呢
2019-09-07 14:58
老哥教教我

老哥教教我

回复 赢无翳:
我不会vue,再说重新开发太麻烦了!
2019-09-05 20:13
赢无翳

赢无翳

回复 老哥教教我:
建议你用uniapp吧
2019-09-05 14:19
老哥教教我

老哥教教我

回复 DCloud_heavensoft:
哎,希望5+也提供一套方案!
2019-09-03 16:12
DCloud_heavensoft

DCloud_heavensoft

回复 老哥教教我:
uni-app会提供专门的方案。5+app和wap2app无解
2019-09-03 16:09
torch

torch

这里写得有问题(网页广告使用UIWebview加载,HBuilderX2.2.5版本将会修改调整使用UIWebview。 )
2019-09-03 09:30
老哥教教我

老哥教教我

ios改成WKWebview js混淆不能用有其他解决方案吗?要不真的裸奔了!
2019-09-03 08:09