无法使用 cordova iOS 在 iframe 中正确加载外部 URL
Posted
技术标签:
【中文标题】无法使用 cordova iOS 在 iframe 中正确加载外部 URL【英文标题】:Can't properly load external URLs in an iframe with cordova iOS 【发布时间】:2013-03-15 16:58:11 【问题描述】:我需要帮助。有人知道为什么我不能始终将 URL 加载到 phonegap/cordova ios 中的 iframe 中吗? 我注意到有些页面只是拒绝在 iframe 中加载,而其他页面则可以正常加载。我似乎也无法加载基于 SSL 的网站。例子:
<iframe src="http://ucla.edu"></iframe> //loads correctly
<iframe src="http://google.com"></iframe> //refuses to load
<iframe src="http://www.ufrj.br"></iframe> //loads correctly
<iframe src="http://192.168.20.95"></iframe> //loads correctly (this a local server I have inside my work network)
<iframe src="https://192.168.30.15"></iframe> //refuses to load (this also a local server but with a valid ssl cert (signed by startcom/startSSL)
我在 config.xml 中添加了 stay-in-webview 和访问源标签(我可以在 iframe 中加载一些外部页面),但不确定为什么这种行为不一致。我用来开发的Mac可以正常加载所有这些。
我是新手,所以在开始将我的旧网络应用程序“移植”到移动平台之前,我正在尝试一些事情来了解基础知识。 我的开发系统有: 狮子 科尔多瓦 2.5 xCode 4.6
欢迎任何帮助。谢谢!
【问题讨论】:
【参考方案1】:我想我明白了。我会把它贴在这里,以防其他人和我有同样的误解。
查看我的常规桌面浏览器中的响应标头,我注意到无法在移动应用 iframe 中加载的页面在其响应标头中设置了 X-Frame-Options: SAMEORIGIN
。
此选项告诉网络浏览器不要在框架中加载该页面,除非窗口属于同一来源。由于我的 iframe 不符合条件,因此无法加载页面。 https://developer.mozilla.org/en-US/docs/HTTP/X-Frame-Options
我也(错误地)理解了 config.xml 的目标:白名单是应用可以访问的地方。它与应用程序可以接收的内容无关。我的错。
我将尝试使用适用于 cordova 的 childbrowser 插件并希望获得更好的结果。 https://github.com/macdonst/phonegap-plugins/tree/master/android/ChildBrowser
-棒
【讨论】:
最好试试 InAppBrowser Whizkid747 为什么更好? 它不是一个插件,它与PhoneGap一起提供。因此,每个版本的 PhoneGap 都有保证的维护和升级。 很棒的提示,WhizKid747!最近两天我一直在使用 inAppBrowser。正是我需要的。再次感谢。 谢谢@rod,你让我走上了关于白名单的正确道路;)以上是关于无法使用 cordova iOS 在 iframe 中正确加载外部 URL的主要内容,如果未能解决你的问题,请参考以下文章
cordova iOS blank iframe iphone iframe 白屏 ios iframe 白屏
cordova iOS blank iframe iphone iframe 白屏 ios iframe 白屏