我有一个离子5 Cordova 9应用,该应用需要以下行为:
- 它应在此应用程序中加载由跨源Web服务提供的图像横幅,很明显是在iframe中。
- 图像横幅具有超链接,一旦单击,系统浏览器应转到另一个交叉来源的网页。
以上内容在ionic和Cordova CLI自动生成的config.xml和index.html上在Android上运行良好。当我将代码携带到iOS上时,我必须同时更改config.xml和index.html才能在iframe中获取内容: 更改后,Config.xml具有这些相关条目
<access origin="*" />
<allow-navigation href="*" />
<allow-intent href="*" />
我在index.html中添加了以下内容
<meta http-equiv="Content-security-policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; child-src *">
进行上述更改后,我在iframe中获得了横幅,但是当我单击横幅时,什么也没有发生。 Safari显示未生成任何网络请求。 如前所述,我无法控制iframe的内容,因此无法使用InAppBrowser或类似的解决方案。
我还尝试了卸载cordova-plugin-whitelist,因为在iOS上不需要这样做,但这没有任何区别。 目前,我不担心加强安全性。我想先使其工作。我研究了Cordova白名单指南,并研究了关于堆栈溢出的所有相关问题,但是没有找到任何解决方案。我需要专家的指导。