我想将 Toast say "no internet connection"添加到此 webview 代码,我尝试了不止一次但失败了,我通过 MainActivity 中的按钮打开此 webview,我希望编写一个干净完整的 webview 代码但我有在 android plez 帮助中的一些经验,代码
public class ShowWeb extends AppCompatActivity {
ProgressDialog progressDialog;
WebView webview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show_web);
String Url = getIntent().getStringExtra("url");
WebView web = (WebView)findViewById(R.id.webview);
web.loadUrl(Url);
//Get webview
WebView webView = (WebView) findViewById(R.id.webview);
//startWebView("http://50.73.3.244/Mobile/");
// Javascript inabled on webview
webView.getSettings().setJavaScriptEnabled(true);
// Other webview options التكبير والتصغير
webView.getSettings().setLoadWithOverviewMode(true);
//webView.getSettings().setUseWideViewPort(true);
//Other webview settings
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webView.setScrollbarFadingEnabled(false);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setPluginState(WebSettings.PluginState.ON);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setSupportZoom(true);
}
//Show loader on url load
public void onLoadResource (WebView view, String url) {
// if url contains string androidexample
// Then show progress Dialog
if (progressDialog == null && url.contains("lol")
) {
// in standard case YourActivity.this
progressDialog = new ProgressDialog(ShowWeb.this);
progressDialog.setMessage("Loading...");
progressDialog.show();
}
}
最佳答案
我看到有两种方法可以解决这个问题。
方式一:
首先检查互联网连接。如果可用,则加载 url,否则显示带有消息“无互联网可用”的 Toast。
WebView web = (WebView)findViewById(R.id.webview);
if(isNetworkStatusAvialable (getApplicationContext())) {
web.loadUrl(Url);
} else {
Toast.makeText(this, "No Internet Connection", Toast.LENGTH_SHORT).show();
}
...
public static boolean isNetworkStatusAvialable (Context context) {
ConnectivityManager cm =
(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
return activeNetwork != null &&
activeNetwork.isConnectedOrConnecting();
}
方式二:
使用 WebViewClient
的 onReceivedError 回调从 Assets 加载默认页面。
mWebView.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
mWebView.loadUrl("file:///android_asset/myerrorpage.html");
}
});
关于android - 如何将 Toast say "no internet connection "添加到 webview?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43718985/