Java Webview通过out会话检查连接
我有一个WebView应用程序,需要检查应用程序中的每个“单击”操作是否与Internet连接。我得到了以下代码,用于在应用程序启动时检查互联网。但我需要弄清楚如何在用户每次更改webview中的页面时进行此检查 我的代码:Java Webview通过out会话检查连接,java,android,webview,Java,Android,Webview,我有一个WebView应用程序,需要检查应用程序中的每个“单击”操作是否与Internet连接。我得到了以下代码,用于在应用程序启动时检查互联网。但我需要弄清楚如何在用户每次更改webview中的页面时进行此检查 我的代码: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); if(!isN
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
if(!isNetworkConnectionAvailable()){
Context context = getApplicationContext();
CharSequence text = "Sorry you need an Internet connection! Please try again when the network" +
" is available.";
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
finish();
}
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("http://example.com/");
mWebView.setWebViewClient(new MyAppViewClient());
}
这是我的连接检查代码:
public boolean isNetworkConnectionAvailable() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting()){
return true;
}
else{
return false;
}
}
这可能吗?我认为您可以通过以下方式检测新的URL加载请求:
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
我学会了重写该函数,以便单击webview中的链接不会打开新活动。每次用户单击URL时都会调用该函数。我想你可以把你的连接检查逻辑挂在那里
我很好奇为什么你需要检查这个。如果没有连接,webview控件将显示错误。你只是想把那个错误信息短路吗?可能会有一个非常小的时间窗口,您的检查成功,但当点击被处理时,网站变得不可用
希望这有帮助,
凯文Kev,谢谢,我会考虑在这里添加我的逻辑。至于原因——我不希望用户看到带有web应用URL的“页面不可用”页面。