如果 webview 中没有互联网连接,则强制关闭应用程序
Force to close the app if there's no internet connection in webview
使用 Android WebView,如果 phone 没有互联网连接,我如何强制关闭应用程序?
或者,如果这不可能,有没有办法在用户离线时显示 404 html 页面。
这是我的代码:
public class MainActivity extends Activity {
private WebView webView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.show_web_view);
webView = (WebView) findViewById(R.id.webView1);
startWebView("http://example.com/appsite/index.php");
}
private void startWebView(String url) {
webView.setWebViewClient(new WebViewClient() {
ProgressDialog progressDialog;
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
public void onLoadResource (WebView view, String url) {
if (progressDialog == null) {
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setMessage("Loading...");
progressDialog.show();
}
}
public void onPageFinished(WebView view, String url) {
try{
if (progressDialog.isShowing()) {
progressDialog.dismiss();
progressDialog = null;
}
}catch(Exception exception){
exception.printStackTrace();
}
}
});
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(url);
}
}
首先你必须尝试一些代码或更好地搜索,这种问题在这个社区已经做了很多。
好吧,下面是一些可以帮助您解决问题的代码:
创建一个检查是否有连接的方法
public boolean hasConnectivity(Context context) {
if (context != null) {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getApplicationContext().getSystemService(
Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager
.getActiveNetworkInfo();
return networkInfo != null && networkInfo.isAvailable()
&& networkInfo.isConnected();
} else {
return false;
}
}
然后,调用您的 onCreate 方法:
if (hasConnectivity(this)) {
startWebView("http://example.com/appsite/index.php");
} else {
Toast.makeText(this, "you do not have connection", Toast.LENGTH_LONG).show();
}
记得在您的 AndroidManifest.xml 中添加此权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
使用 Android WebView,如果 phone 没有互联网连接,我如何强制关闭应用程序?
或者,如果这不可能,有没有办法在用户离线时显示 404 html 页面。
这是我的代码:
public class MainActivity extends Activity {
private WebView webView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.show_web_view);
webView = (WebView) findViewById(R.id.webView1);
startWebView("http://example.com/appsite/index.php");
}
private void startWebView(String url) {
webView.setWebViewClient(new WebViewClient() {
ProgressDialog progressDialog;
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
public void onLoadResource (WebView view, String url) {
if (progressDialog == null) {
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setMessage("Loading...");
progressDialog.show();
}
}
public void onPageFinished(WebView view, String url) {
try{
if (progressDialog.isShowing()) {
progressDialog.dismiss();
progressDialog = null;
}
}catch(Exception exception){
exception.printStackTrace();
}
}
});
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(url);
}
}
首先你必须尝试一些代码或更好地搜索,这种问题在这个社区已经做了很多。
好吧,下面是一些可以帮助您解决问题的代码:
创建一个检查是否有连接的方法
public boolean hasConnectivity(Context context) {
if (context != null) {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getApplicationContext().getSystemService(
Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager
.getActiveNetworkInfo();
return networkInfo != null && networkInfo.isAvailable()
&& networkInfo.isConnected();
} else {
return false;
}
}
然后,调用您的 onCreate 方法:
if (hasConnectivity(this)) {
startWebView("http://example.com/appsite/index.php");
} else {
Toast.makeText(this, "you do not have connection", Toast.LENGTH_LONG).show();
}
记得在您的 AndroidManifest.xml 中添加此权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />