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