Phonegap在线方法和window.location

时间:2012-10-13 22:37:42

标签: events cordova

我是手机新手,我还在尝试了解基础知识。我想创建一个简单的应用程序,它启动时检查它是否有互联网连接,如果它,我希望它重定向到一个网站或在网络视图中加载该网站。如果它没有互联网连接,那么我希望它留在应用程序上,只显示静态内容。

这是我到目前为止所拥有的。

<!DOCTYPE html>
<html>
  <head>
    <title>Online Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova-2.1.0.js"></script>
    <script type="text/javascript" charset="utf-8">

    function onLoad() {
        document.addEventListener("deviceready", onDeviceReady, false);
    }

    // Cordova is loaded and it is now safe to make calls Cordova methods
    //
    function onDeviceReady() {
        document.addEventListener("online", onOnline, false);
    }

    // Handle the online event example
    //
    function onOnline() {
      window.location.href ="http://google.com";
    }

    </script>
  </head>
  <body onload="onLoad()">
  </body>
</html>

我还将OpenAllWhitelistURLsInWebView设置为true。

如果应用程序处于离线状态,那么在线事件才有效吗?当应用程序重新联机时,它会被调用吗?

提前致谢!

2 个答案:

答案 0 :(得分:1)

不,如果互联网已连接,应用启动时会触发在线事件,并且当应用从离线模式转为在线模式时也会调用此事件。

如果您想在phonegap中打开外部网站,可以添加相同的子浏览器插件,否则您可以在嵌入式webveiw中打开网站。 window.location.href在Phonegap中不起作用。

我不知道您是在使用iOS还是Android,因此链接for iOSfor Android

答案 1 :(得分:0)

移动在线事件处理程序(即此行)的接线:

document.addEventListener("online", onOnline, false);

进入你的onLoad()函数。我发现在线/离线事件需要在加载时注册,而不是后来出于某种原因。