[转帖]DCloud关于Appstore审核反馈废弃UIWebview APIs问题的说明
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
此文档将不再维护,请参考新文档:https://uniapp.dcloud.io/tutorial/app-ios-uiwebviewiOS有UIWebview和WKWebview两种webview。从iOS13开始苹果将UIWebview列为过期API。 2020年4月起App Store将不再接受使用UIWebView的新App上架、2020年12月起将不再接受使用UIWebView的App更新。 从HBuilderX 2.2.5起,iOS上默认均已经是WKWebview,除非开发者手动在代码中指定要用UIWebview,否则实际渲染的页面都是在WKWebview里渲染的。 老HBuilder和HBuilderX 2.2.5之前的版本,App端策略如下:
HBuilderX 2.2.5+版本已将iOS上所有webview的默认内核由UIWebview调整为WKWebview。
配置使用UIWebview模块打开项目的manifest.json文件,在“App模块配置”项中勾选“iOS UIWebview”:
配置后需提交云端打包生效 5+App(含wap2app)如何切换iOS默认使用UIWebview或WKWebview内核?HBuilderX 2.2.5以前的版本,iOS上webview的默认为UIWebview,HBuilderX2.2.5及以后的版本默认改为WKWebview。 "plus": {
"kernel": {
"ios": "UIWebview" //或者 "WKWebview"
},
// ...
}uni-app 如何配置web-view组件默认使用UIWebview或WKWebview内核?HBuilderX 2.2.5以前的版本,iOS上vue页面中web-view组件或调用5+ API创建的Webview窗口默认为UIWebview,HBuilderX2.2.5及以后的版本默认改为WKWebview。 "app-plus": {
"kernel": {
"ios": "UIWebview" //或者 "WKWebview"
},
// ...
}nvue页面中的web-view组件强制使用WKWebview,不可配置 如何使用5+ API(plus.webview.create)创建Webview窗口时指定使用UIWebview或WKWebview内核?创建Webvie窗口时可通过kernel属性指定内核,如下: // 通过kernel属性指定Webview的内核
var w = plus.webview.create('https://xxx.xxx.xxx', 'id', {
'kernel': 'UIWebview' //或者'WKWebview'
});更多规范参考5+ API的 WebviewStyles 使用WKWebview的影响使用WKWebview替换UIWebview将会影响以下功能:
但WKWebview的好处是:节省内存;滚动时懒加载的图片也可以实时渲染,而uiwebview在滚动停止后懒加载的图片才能显示。 如果同时在一个app里使用ui和wk两种webview,注意2种webview之间的cookie、localstorage、session不共享,但plus.storage是共享的。 uni-app中Webview的使用注意uni-app的js运行在独立的jscore中,而不是Webview中,不存在跨域问题。
如果需要调整uni-app下web-view组件的渲染内核设置,将manifest.json源码视图的app-plus -> kernel -> ios 的值设为 UIWebview。 uni-app的nvue页面问题nvue页面不使用webview渲染,但其中的web-view组件说明如下。
三方SDK中UIWebview的使用目前如下SDK中仍然使用了UIWebview,不管是5+App还是uni-app。
5+App开发者建议直接升级为uni-app,一劳永逸,不会有跨域、白屏和无法加密等各种问题。 离线打包配置UIWebview模块如果开发者需要在离线打包工程中使用UIWebview功能,需要在自己的离线工程中配置UIWebview模块。 注意事项如果配置正确后,提交Appstore,仍然被提示含有UIWebview,那么请检查你的app是否使用了其他原生插件。 该文章在 2023/5/29 16:34:52 编辑过 |
关键字查询
相关文章
正在查询... |