ページ/アラートで接続が利用できないときに何かをするために出かけていますWebView
(たとえば、ローカルのhtmlページまたはアラートをロードします)。WebViewが「Webページが利用できません」と表示されないようにする必要がありますが、成功しません。任意の提案をいただければ幸いです。
質問する
11012 次
4 に答える
5
それはすべて、onReceivedErrorからAlertDialogを表示するだけでした。
@Override
public void onReceivedError(WebView webView, int errorCode, String description, String failingUrl) {
//Clearing the WebView
try {
webView.stopLoading();
} catch (Exception e) {
}
try {
webView.clearView();
} catch (Exception e) {
}
if (webView.canGoBack()) {
webView.goBack();
}
webView.loadUrl("about:blank");
//Showing and creating an alet dialog
AlertDialog alertDialog = new AlertDialog.Builder(youractivity.this).create();
alertDialog.setTitle("Error");
alertDialog.setMessage("No internet connection was found!");
alertDialog.setButton("Again", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
finish();
startActivity(getIntent());
}
});
alertDialog.show();
//Don't forget to call supper!
super.onReceivedError(webView, errorCode, description, failingUrl);
}
WebViewを初めて使用する場合は、次のようにonReceivedErrorを実装することを検討します。
mWebView.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
//Code here
}
});
于 2012-12-26T17:00:45.823 に答える
4
上記のコードは2つの非推奨の警告を表示するので、次のように変更することをお勧めします。これは、WebViewコンポーネントを含むアクティビティに含まれます。
myWebView.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView webView, int errorCode, String description, String failingUrl) {
try {
webView.stopLoading();
} catch (Exception e) {
}
if (webView.canGoBack()) {
webView.goBack();
}
webView.loadUrl("about:blank");
AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
alertDialog.setTitle("Error");
alertDialog.setMessage("Cannot connect to the R2R Server. Check your internet connection and try again.");
alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "Try Again", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
finish();
startActivity(getIntent());
}
});
alertDialog.show();
super.onReceivedError(webView, errorCode, description, failingUrl);
}
});
于 2014-11-18T15:33:28.150 に答える
0
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
// declare a text view in your xml
sample_TextView.setText(R.string.no_internet_connection);
view.loadUrl("about:blank");
}
于 2017-08-23T00:16:06.117 に答える
0
アセットからhtmlファイルをロードできます。以下のようにHTMLを配置します。アセット/html/no_connection.html
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error)
{
Toast.makeText(getActivity(),String.valueOf(error.getErrorCode())+":"+ error.getDescription(),Toast.LENGTH_LONG).show();
wv.loadUrl("file:///android_asset/html/no_connection.html");
super.onReceivedError(view, request, error);
}
次のものはAPI23で非推奨になりました
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
{
// TODO: Implement this method
super.onReceivedError(view, errorCode, description, failingUrl);
}
何かがうまくいかなかったら許してください。私は熟練していません。
于 2021-11-04T08:04:10.567 に答える