建立了一个手机缺口的项目,并指定了iOS版本
phonegap build ios
使用Xcode启动项目build succeeded
并返回预先配置的图像和文本。
启动上游rails服务器rails s
,并运行localhost:3000上的应用程序。使用以下内容修改index.html
页面:
<html>
<head>
<script type="text/javascript">
function onBodyLoad()
{
document.addEventListener("deviceready", onDeviceReady, false);
window.location.href = "http://localhost:3000/";
}
function onDeviceReady()
{ }
</script>
</head>
<body onload="onBodyLoad()"> </body>
</html>
以及两个config.xml
个文件(项目的根目录,platforms/ios/myapp_ios
内的
<access origin="http://localhost:3000/" />
返回空白页面。尝试使用导致相同空白行为的外部链接。这里出了什么问题?
答案 0 :(得分:0)
在此上下文中,localhost将是运行PhoneGap应用程序的电话设备或模拟器。您将需要更改Rails服务器所在机器的IP地址,即使它与模拟器运行PhoneGap应用程序的机器相同。
此外,您需要更改config.xml访问元素以使用您在应用中使用的相同IP地址,并且您可能还需要在PhoneGap应用程序index.html中添加内容安全策略元标记以允许内容从外部。有关here的详细博客文章。如果使用iOS 9,还要注意App Transport Security设置,因为您可能需要在项目的-Info.plist中设置异常来处理非SSL内容加载。
你想在这里实现什么,然而,远程重新加载整个页面对于PhoneGap来说并不是一个好主意,因为你的新页面会破坏与你的应用程序捆绑的那个页面,因此你将失去所有的插件权益。您要做的是将数据从远程服务器加载到与PhoneGap www文件夹中的应用程序捆绑在一起的模板中,或者对来自远程服务器的页面片段执行相同操作。