关于新版IONIC3 WKWebView 出现跨域请求的问题

简介: {"_body":{"isTrusted":true},"status":200,"statusText":"Ok","headers":{},"type":3,"url":null}"单独把这个问题拿出来写一篇文章,是因为在一些ionic开发群里...

{"_body":{"isTrusted":true},"status":200,"statusText":"Ok","headers":{},"type":3,"url":null}"

单独把这个问题拿出来写一篇文章,是因为在一些ionic开发群里看到好多朋友都在问,有的花了一天的时间都没有解决;甚至看到有人发布悬赏来解决此问题;博主可以说是最早经历这个坑的(博主当时也是花了一下午的时间呢,各种查资料)

iOS打包在模拟器中运行,在控制台会看到网络请求后的结果:

{"_body":{"isTrusted":true},"status":200,"statusText":"Ok","headers":{},"type":3,"url":null}"

这是因为IONIC3打包iOS时后使用了高性能WebView组建WKWebView,做iOS开发的同学应该都很熟悉了。

之前看到过资料,有同学测试过WKWebView占用的资源是UIWebView占用的资源的1/40左右,所以IONIC也将默认构建iOS应用的引擎改成了WKWebView。

另外官方对新版IONIC3使用WKWebView的解释

在iOS中,现在有两个网页浏览器,UIWebView和WKWebView。之前的IONIC版本使用的都是UIWebView。现在都将使用WKWebView。

我们坚信WKWebview是任何应用程序的最佳选择,因为它比旧版的webview(UIWebView)有许多改进。这些功能包括:

将JS代码JIT转换为机器代码,运行速度更快
改进的渲染性能
更少的内存消耗
更好地遵守网络标准
可靠的滚动事件(对虚拟列表很重要)

解决方案

1.在后台接口配置允许跨域请求

 这个需要后端开发工程师进行配置(java,.net,php,nodejs等网上都有相关资料)

2.强制cordova使用UIWebView引擎渲染页面
(1)在config.xml里增加以下配置

<preference name="CordovaWebViewEngine" value="CDVUIWebViewEngine" />

(2)卸载WKWebView插件

$ ionic cordova plugin remove cordova cordova-plugin-ionic-webview --save
$ rm -rf platforms/
$ rm -rf plugins/
$ ionic cordova build ios

目前我了解到的有以上两种方案,如有其他解决方案,欢迎在文章下方留言分享。

参考资料:https://ionicframework.com/docs/wkwebview/

关注微信订阅号:IonicBlog,可获取最新Ionic资讯和技术博客。

img_1c5622191aff299f3a64ec22dc98308c.jpe
IonicBlogQR.jpg

目录
相关文章
|
4月前
|
Web App开发 前端开发 Java
通过设置 Chrome 解决开发调用跨域问题
通过设置 Chrome 解决开发调用跨域问题
1121 7
|
4月前
|
Web App开发 数据可视化 前端开发
Chrome插件实现问题之content-scripts能访问哪些Chrome API
Chrome插件实现问题之content-scripts能访问哪些Chrome API
|
Android开发
Electron使用webview加载部分https页面时,会因为证书出现白屏
Electron使用webview加载部分https页面时,会因为证书出现白屏
528 0
|
Web App开发 数据采集
解决Puppeteer内置的Chromium无法自动播放音频问题
解决Puppeteer内置的Chromium无法自动播放音频问题
208 0
|
Web App开发 JavaScript API
chrome系列-扩展程序开发学习-跨域请求数据
扩展程序中会有需要请求外部接口获取数据的时候,如果直接在JS中写的话,会跨域,但是谷歌扩展程序支持这种情况,只需要配置一下即可。
chrome系列-扩展程序开发学习-跨域请求数据
|
Web App开发 缓存 前端开发
新版 google 谷歌浏览器跨域问题
新版 google 谷歌浏览器跨域问题
275 0
|
安全 API iOS开发
支持 WKWebView 及全面兼容 Xcode 11,即刻体验
目前 mPaaS 在 10.1.68 Beta 版已正式废弃 UIWebView,仅支持 WKWebview。
813 0
支持 WKWebView 及全面兼容 Xcode 11,即刻体验
|
Web App开发 NoSQL 开发工具
巧用 chrome 浏览器的开发者工具解决sdk问题
阿里云的API和SDK给用户的自主操作带来了极大的方便. 前两天遇到一个用户,反馈在使用mongodb 的sdk 获取新加坡的集群实例时,总是结果为空. 但请示返回的状态码却是200, 即成功. 但自己确实是有新加坡的集群实例的,并且用的还是购买实例的主账号的 AccessID/Secret.
1556 0
|
Android开发 iOS开发 数据格式
Ionic实现iOS与Android端代码『热更新』
热更新的好处 通常ionic源码可包括(HTML,JavaScript,CSS文件和其他资源),往常我们必须通过提交程序到应用市场,经过漫长的审核后才可让用户更新,每改动一个小地方都需要重新打新版本。
2429 0
|
iOS开发
iOS NSURLSession DownloadTask(下载任务)
1. 不需要获取文件下载进度的方法 // 此方法无法获取到文件的下载进度,只能在结束时做响应 - (void)download { NSURL *url = [NSURL URLWithString:@"http://127.
1155 0