9

我正在通过在 android 资产中使用 android 和离线 html5 页面来创建一个混合应用程序。navigator.online 在 Android Webview 中不起作用。

请帮忙

4

4 回答 4

6

如果有人还在寻找这个。我的解决方案是在我的活动中注册一个广播接收器以检测连接更改。

    @Override
protected void onPause() {
    super.onPause();

    if (connectivityChangeReceiver!=null) unregisterReceiver(connectivityChangeReceiver);
}

@Override
protected void onResume()
{
    super.onResume();

    IntentFilter intentFilter = new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE");
    registerReceiver(connectivityChangeReceiver,intentFilter);
}

private BroadcastReceiver connectivityChangeReceiver = new BroadcastReceiver() {

    public void onReceive(Context context, Intent intent) 
    {
        mWebView.setNetworkAvailable(isNetworkAvailable(context));
    }
}; 
于 2013-09-11T16:13:19.800 回答
2

确保您在AndroidMenifest.xml文件中提供以下权限:

<uses-permission android:name="android.permission.INTERNET />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
于 2017-05-16T15:47:30.903 回答
1

您可能想为您的活动添加以下代码行

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

确保检查函数中的值function onOnline(){}&function onOffline(){}

于 2013-01-31T11:27:40.083 回答
1

你确定你没有弄错拼写吗?

它应该是 navigator.onLine (camelCase)

于 2014-05-21T12:43:29.890 回答