1

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

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

<!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。

在线事件是否仅在应用程序离线时才有效,然后在应用程序重新上线时被调用?

提前致谢!

4

2 回答 2

1

不,如果连接了互联网,应用程序启动时会触发 Online 事件,并且当应用程序从离线模式转到在线模式时也会调用它。

如果你想在 phonegap 中打开一个外部网站,你可以为它添加一个子浏览器插件,或者你可以在嵌入式 webveiw 中打开一个网站。window.location.href 在Phonegap 中不起作用。

我不知道您是在使用 iOS 还是 Android,所以iOSAndroid的链接

于 2012-10-14T08:12:10.913 回答
0

将您的在线事件处理程序的接线向上移动(即这一行):

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

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

于 2012-10-14T01:23:11.177 回答