【发布时间】:2020-01-28 11:47:27
【问题描述】:
我使用 Android Studio 在 android 应用程序中转换我的网站。 当打开时没有互联网连接时,我尝试显示对话框。它工作正常。
但问题是当应用程序仍在运行时突然没有互联网连接。然后,如果我点击一个 url,webview 会显示“网页不可用”。
MainActivity.java
package com.example.myapp;
import android.graphics.Bitmap;
import android.provider.SyncStateContract;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private WebView mywebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (!DetectConnection.checkInternetConnection(this)) {
try {
AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
alertDialog.setTitle("Info");
alertDialog.setMessage("Internet non disponible, Verifiez votre connexion internet et réessayez");
alertDialog.setIcon(android.R.drawable.ic_dialog_alert);
alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "Réessayer", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
finish();
startActivity(getIntent());
}
});
alertDialog.show();
} catch (Exception e) {
}
} else {
mywebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = mywebView.getSettings();
mywebView.loadUrl("https://myapp.com/");
mywebView.setWebViewClient(new WebViewClient());
mywebView.clearCache(true);
mywebView.clearHistory();
webSettings.setJavaScriptEnabled(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
}
}
public class myWebClient extends WebViewClient{
@Override
public void onPageStarted (WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
@Override
public void onBackPressed (){
if(mywebView.canGoBack()){
mywebView.goBack();
} else {
super.onBackPressed();
}
}
}
DetectConnection.java
package com.example.mycollege;
import android.content.Context;
import android.net.ConnectivityManager;
public class DetectConnection {
public static boolean checkInternetConnection(MainActivity context) {
ConnectivityManager con_manager = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
return (con_manager.getActiveNetworkInfo() != null
&& con_manager.getActiveNetworkInfo().isAvailable()
&& con_manager.getActiveNetworkInfo().isConnected());
}
}
我想知道如何防止在未检测到连接时单击将默认页面“网页不可用”替换为对话框“没有互联网,请检查您的连接!”。 有什么想法吗?
【问题讨论】:
标签: android android-studio webview