单页应用生成空白

时间:2015-11-25 19:52:14

标签: ios cordova ruby-on-rails-4.2

建立了一个手机缺口的项目,并指定了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/" />

返回空白页面。尝试使用导致相同空白行为的外部链接。这里出了什么问题?

1 个答案:

答案 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文件夹中的应用程序捆绑在一起的模板中,或者对来自远程服务器的页面片段执行相同操作。