如何允许Cordova 6.1应用程序在网站上嵌入iframe在iOS中?

Phi*_*esi 11 iframe mobile-safari ios cordova ionic-framework

直到我最近建立,我的cordova应用程序能够嵌入一个网站的iframe就好了; 现在,大概是在我忘记了更新后,构建应用程序导致iframe在iOS上空白但在Android中有效.

我已将以下设置添加到config.xml:

<access origin="*"/> <access origin="*.pushwoosh.com" /> <access origin="*.hoby.org" /> <allow-navigation href="*" /> <allow-intent href="*" />

以及以下内容安全策略:

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">

哪个应该允许基本上一切.我使用cordova 6.1.0和Ionic 1.7.14添加了cordova-whitelist插件

编辑:它实际上适用于iOS模拟器,但不是在我在设备上运行时.

编辑2:似乎它可能是一个移动旅行问题; 我正在通过我的网络查看文件,甚至在科尔多瓦之外他们没有正确加载.我可以确认,这至少在几天前就有效了.

Jes*_*650 23

@Phil,
您的whitelist插件应用程序很接近,但可能会失败,因为您的index.html中有javascript.CSP已经阻止了许多开发者 最简单的方法是将所有Javascript和CSS移动到他们自己的单独文件中.

除此之外,这是一个广泛应用的解决方案:

作为旁注,从Cordova Tools 5.0.0(2015年4月21日)开始,whitelist系统是必需的.对于Phonegap Build,这意味着(2015年6月16日)cli-5.1.1

将此添加到您的 config.xml

<plugin name="cordova-plugin-whitelist"      source="npm" spec="1.1.0" />
<allow-navigation href="*" />
<allow-intent href="*" />
<access origin="*" /> <!-- Required for iOS9 -->
Run Code Online (Sandbox Code Playgroud)

注意您的应用程序现在不安全.由您来保护您的APP.
将以下内容添加到您的index.html

<meta http-equiv="Content-Security-Policy" 
         content="default-src *; 
                  style-src * 'self' 'unsafe-inline' 'unsafe-eval'; 
                  script-src * 'self' 'unsafe-inline' 'unsafe-eval';">
Run Code Online (Sandbox Code Playgroud)

注意您的应用程序现在不安全.由您来保护您的APP.
这个白名单工作表应该有所帮助.
如何应用Cordova/Phonegap白名单系统

  • 我真的不明白为什么你这么粗鲁......是的我对Cordova应用程序的安全性不是很有经验......然后呢?我不配做得更好吗?也许糟​​糕的程序员太自豪了,无法分享自己的知识...... (11认同)
  • 我认为他很友好地要求你阅读他发布的链接如何:阅读将为你提供你需要的所有答案 (3认同)