2013-03-15 143 views
2

我需要帮助。任何人都知道为什么我不能一致地将URL加载到phonegap/cordova iOS中的iframe中? 我注意到有些页面只是简单地拒绝在iframe中加载,而其他页面加载的很好。我似乎也无法加载基于SSL的网站。例子:无法在使用cordova的iframe中正确加载外部网址iOS

<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(我可以加载在iframe一些外部页),但不知道为什么这种行为并不一致。我用来开发的Mac可以正确加载所有这些。

我对此很陌生,因此在开始将我的旧webApps移植到移动平台之前,我正在尝试将我的头围绕基础。 我开发的系统有: 狮子 科尔多瓦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的目标whilelisting:该白名单是应用程序可以访问的地方。它与应用程序可以接收的内容没有多大关系。我的错。

我会尝试使用cordova的childbrowser插件,并希望获得更好的结果。 https://github.com/macdonst/phonegap-plugins/tree/master/Android/ChildBrowser

-ROD

+0

更好的尝试InAppBrowser – Whizkid747 2013-03-15 20:23:03

+0

为什么好,Whizkid747? – rod 2013-03-15 20:50:13

+0

它不是一个插件,并带有PhoneGap。因此,PhoneGap的每个版本都有保证和升级。 – Whizkid747 2013-03-15 21:05:59