Android 无法在Cordova应用程序上检查internet连接

Android 无法在Cordova应用程序上检查internet连接,android,cordova,networking,Android,Cordova,Networking,我正在尝试在我的Cordova应用程序中检查用户的互联网连接,告诉他们如果没有互联网连接,他们需要一个。我发现并安装了这个插件后,我安装了它,我进入我的html主页添加在这个JS代码,但我没有得到任何结果。我会做错什么?我有两个不同的例子,我在下面的android清单中尝试过,但没有成功。我只做了上面描述的事情,现在知道还有其他事情要做。我运行了一个日志猫,但从中找不到任何有用的信息。除此之外,还有其他更容易检查internet连接的方法吗?任何帮助都会很棒! 函数检查连接() { this.

我正在尝试在我的Cordova应用程序中检查用户的互联网连接,告诉他们如果没有互联网连接,他们需要一个。我发现并安装了这个插件后,我安装了它,我进入我的html主页添加在这个JS代码,但我没有得到任何结果。我会做错什么?我有两个不同的例子,我在下面的android清单中尝试过,但没有成功。我只做了上面描述的事情,现在知道还有其他事情要做。我运行了一个日志猫,但从中找不到任何有用的信息。除此之外,还有其他更容易检查internet连接的方法吗?任何帮助都会很棒!

函数检查连接()
{
this.platform.ready()。然后(()=>{
var networkState=navigator.connection.type;
变量状态={};
状态[Connection.UNKNOWN]=“未知连接”;
状态[Connection.ETHERNET]=“以太网连接”;
状态[Connection.WIFI]=“WIFI连接”;
状态[Connection.CELL_2G]=“CELL 2G Connection”;
状态[Connection.CELL_3G]=“CELL 3G Connection”;
状态[Connection.CELL_4G]=“CELL 4G Connection”;
状态[Connection.CELL]=“单元通用连接”;
状态[Connection.NONE]=“无网络连接”;
警报('连接类型:'+状态[网络状态]);
});
}
检查连接();
if(状态[网络状态]=“未知连接”)
{
//表示用户需要internet连接的输出
}
我也试过

    <script>

    document.addEventListener("offline", onOffline, false);

    function onOffline() {
        // Output saying Your internet connection is gone. Connect again
    }
</script>

文档。addEventListener(“脱机”,onOffline,false);
函数onOffline(){
//输出表明您的internet连接已断开。请重新连接
}
我使用这些权限

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

查看用户是否连接到internet的最简单方法是使用联机和脱机事件。虽然您的实现几乎是正确的,但我给出了一个工作示例:

function onDeviceReady() {
    document.addEventListener("offline", onOffline, false);
    document.addEventListener("online", onOnline, false);
}

function onOffline() {
    alert("Offline");
}

function onOnline() {
    alert("Online");
}
需要注意的几件事:

  • 注意,在deviceReady启动后添加EventListeners!在我的示例中,我使用以下行执行此操作:
  • document.addEventListener('devicerady',ondevicerady,false)

  • 注意内联javascript代码:如果您使用的是内容安全策略或CSP,如果您没有设置“unsafe inline”指令,这可能会阻止内联javascript代码执行。在Chrome中,您将在javascript控制台中看到如下错误:
  • 拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“default src'self'data:gap:'safe eval'”。启用内联执行需要'unsafe inline'关键字、哈希('sha256-ZJzCdAlcRvBg/CUgBlBR0EJlHtXyQ/rPspGdZwNhwlw=')或nonce('nonce-…')。还请注意,没有显式设置“script src”,因此使用“default src”作为回退


    您应该为代码创建一个javascript文件,并在html中引用它,而不是使用内联javascript。

    谢谢!我想我的问题是,我试图在应用程序没有准备好的情况下运行我的脚本。再次感谢你!
    function onDeviceReady() {
        document.addEventListener("offline", onOffline, false);
        document.addEventListener("online", onOnline, false);
    }
    
    function onOffline() {
        alert("Offline");
    }
    
    function onOnline() {
        alert("Online");
    }