微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 为什么Cordova 2.7.0 JS似乎不再在远程页面上工作?

背景

我正在尝试将基于Cordova 2.0的iOS应用程序升级到2.7版本.

它基本上是一个受欢迎的屏幕,指向一个远程搜索引擎(请注意有关应用程序的有效性和可能的​​批准,因为我们过去),我们正在使用ChildBrowser插件来启用子浏览器中打开链接,以免将用户陷入Cordova网络视图.

Cordova 2.7有一个名为InAppBrowser功能我希望使用而不是Childbrowser. InAppbrowser基本上是一样的,除了在Safari中缺少一个按钮打开.

问题

现有的应用程序的远程网页包括Cordova JS(以及Childbrowser插件),它可以在子浏览器中打开链接.

我的测试Cordova 2.7应用程序似乎没有正确加载Cordova JS从远程网页加载.

我尝试在嵌入式起始页和远程起始页上使用完全相同的HTML:

<!DOCTYPE html>
<html>
  <head>
    <Meta charset="utf-8">
    <script type="text/javascript" src="http://mydomain.com/mobile/cordova-2.7.0.js"></script>
  </head>
  <body>
    <script>
      document.addEventListener("deviceready",onDeviceReady,false);
      function onDeviceReady() {
        alert("Ready!!");
      }
    </script>
  </body>
</html>

为了测试这个嵌入式开始页面,我把这一行放在config.xml中:

<content src="index.html" />

当我运行应用程序时,我马上得到“准备好了”警报.

要测试这个作为远程起始页面(我的目标是链接到最终的应用程序中的远程页面,我只是使用它作为测试的起始页面,如果从嵌入式页面链接,结果是一样的.)我把这一行放在config.xml中:

<content src="http://mydomain.com/mobile/index.PHP" />

当我运行应用程序,我只是得到空白屏幕,没有警报.

此外,在cordova-2.7.0.js L. 6255中,我改变了

console.log('deviceready has not fired after 5 seconds.');

alert('deviceready has not fired after 5 seconds.');

有了这个变化,使用远程起始页面运行应用程序会导致空白页面,然后在五秒钟后,我会收到警报“设备在5秒钟后还没有触发”.所以这告诉我,Cordova JS没有正确启动.不用说,我不能让InAppbrowser在远程站点上的子浏览器中启动链接,但是我可以在嵌入式开始页面上正常工作.

任何人都有从哪里去的想法?这是一个非常简单的例子,所以我假设这是一个Cordova设置问题或功能的变化.感谢任何想法,谢谢!

解决方法

是的,2.7中有一些与我们的cordova-cli工作有关.见: https://issues.apache.org/jira/browse/CB-3029

修复是在根文件夹中添加一个名为“cordova_plugins.json”的空文件.

原文地址:https://www.jb51.cc/js/155420.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐