我创建了一个webview并加载了一个URL。
如果网络连接不可用,则会使用重试按钮加载自定义URL。
如何在用户进行网络连接后重启此按钮? (如果通过调用另一个活动然后再次调用此webview,这样做会更容易。)
我是否正确处理了网络连接无法正常使用的代码?
以下是我的代码:
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
import android.support.v4.app.NavUtils;
import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
public class WebActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web);
if(isNetworkStatusAvailable (getApplicationContext())) {
Toast.makeText(getApplicationContext(), "Loading...", Toast.LENGTH_SHORT).show();
WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.loadUrl("http://www.bing.com");
myWebView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
Toast.makeText(getApplicationContext(), "Internet Connection Unavailable Or " + description , Toast.LENGTH_LONG).show();
view.loadUrl("file:///android_asset/mob.html");
super.onReceivedError(view, errorCode, description, failingUrl);
}
});
} else {
Toast.makeText(getApplicationContext(), "Internet Connection Unavailable.", Toast.LENGTH_LONG).show();
WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.loadUrl("file:///android_asset/mob.html");
}
// Show the Up button in the action bar.
setupActionBar();
}
public static boolean isNetworkStatusAvailable (Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager != null)
{
NetworkInfo netInfos = connectivityManager.getActiveNetworkInfo();
if(netInfos != null)
if(netInfos.isConnected())
return true;
}
return false;
}
}
答案 0 :(得分:0)
在您的Button oncClickListener中调用webview.reload()以重新加载您的网址。
答案 1 :(得分:0)
答案 2 :(得分:0)
我现在使用以下方法解决了这个问题,我将其中的代码替换为:
Intent errorIntent = new Intent(this, NetworkErrorActivity.class);
startActivity(errorIntent);
finish();
在我的新活动中,我按下按钮再次调用我之前的活动。