【发布时间】:2015-01-20 01:00:19
【问题描述】:
我在布局中有一个 WebView,它基本上是加载给定的任何 url。一切正常。 但是,当页面由于某些原因(例如 WebView 无法访问服务器或网页被删除)不可用时,WebView 会显示“网页不可用。www.givenurl_something.com 上的网页可能暂时关闭”等。 我不想向用户显示此文本,而是想在 WebView 中显示存储在应用程序本身中的默认图像。 我的意思是当一切正常时,网页应该打开。否则,应该显示默认图像,有人可以帮助我吗? 下面是我的代码。
public class WebviewActivity extends Activity {
// flag for Internet connection status
Boolean isInternetPresent = false;
// Connection detector class
ConnectionDetector cd;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.webview);
cd = new ConnectionDetector(getApplicationContext());
// Create ad request
isInternetPresent = cd.isConnectingToInternet();
if (isInternetPresent) {
WebView w1 = (WebView) findViewById(R.id.webView1);
w1.setWebViewClient(new WebViewClient());
w1.getSettings().setJavaScriptEnabled(true);
w1.getSettings().setBuiltInZoomControls(true);
w1.loadUrl("http://www.google.com");
WebClientClass webViewClient = new WebClientClass();
w1.setWebViewClient(webViewClient);
WebChromeClient webChromeClient = new WebChromeClient();
w1.setWebChromeClient(webChromeClient);
}
else {
showAlertDialog(WebviewActivity.this, "No Internet Connection",
"You don't have internet connection.", false);
}
}
public class WebClientClass extends WebViewClient {
ProgressDialog pd = null;
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
pd = new ProgressDialog(WebviewActivity.this);
pd.setTitle("Please wait");
pd.setMessage("Page is loading..");
pd.show();
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
pd.dismiss();
}
}
public class WebChromeClass extends WebChromeClient {
}
public void showAlertDialog(Context context, String title, String message,
Boolean status) {
AlertDialog alertDialog = new AlertDialog.Builder(context).create();
// Setting Dialog Title
alertDialog.setTitle(title);
// Setting Dialog Message
alertDialog.setMessage(message);
// Setting alert dialog icon
// alertDialog.setIcon(R.id.action_mode_close_button);
// Setting OK Button
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
// Showing Alert Message
alertDialog.show();
}
【问题讨论】:
标签: android url webview android-webview internet-connection