Android Studio Webview - 加载后不显示连接消息,而不是在 Android App 中显示连接消



>我有一个网络视图的代码,这样它就会显示当Android Studio中没有连接时,它会显示一条没有连接的消息,然后用户按下一个按钮查看是否有连接再次,它做得很好,但只是第一次打开。页面加载互联网后,如果您停用互联网并输入任何 url,它再次显示 404 错误,而不是显示布局和重试连接到互联网的按钮。

这是创建的另一个名为 NoConnection 的失败中的代码.java以便在编码中具有更多顺序。如果你确切地告诉我在代码中放什么和在哪里,那就太好了,因为我是Android Studio的新手。

import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
public class NoConnection extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_no_connection);
}

public void retry(View view){

if(isNetworkAvailable() == true){
Intent Intent = new Intent(NoConnection.this, SplaceScreen.class);
startActivity(Intent);
}else{
Toast.makeText(this, "No internet connection.", Toast.LENGTH_LONG).show();
}

}

public boolean isNetworkAvailable() {
// Get Connectivity Manager class object from Systems Service
ConnectivityManager cm = (ConnectivityManager)  getSystemService(Context.CONNECTIVITY_SERVICE);
// Get Network Info from connectivity Manager
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
// if no network is available networkInfo will be null
// otherwise check if we are connected
if (networkInfo != null && networkInfo.isConnected()) {
return true;
}
return false;
}
}

现在,我如何修改它,使其在网站加载后工作,并且您正在导航它显示消息?

提前感谢,

这里的解决方案是每次点击链接(即加载网页(时检查isNetworkAvailable()。您需要做的是,在 WebView 中侦听 urlLoad 事件,并在加载之前调用isNetworkAvailable()

您可以通过执行以下操作来执行此操作:

  1. WebViewClient设置为 Web 视图。

  2. WebViewClient中,重写shouldOverrideUrlLoading()方法。每次在 Web 视图中加载 url 时都会调用此方法。在此回调方法中调用isNetworkAvailable()。还有另一个回调方法onPageStarted()在加载页面之前调用。您也可以尝试此方法。

  1. 您可以尝试重写onReceivedError()方法。当 url 加载失败时,将调用此方法。

有很多方法可以完成这项工作,所以看看什么适合你并继续下去。

最新更新