Android:如何使用按钮重新加载webview

时间:2014-03-24 10:10:11

标签: android webview

我创建了一个webview并加载了一个URL。

如果网络连接不可用,则会使用重试按钮加载自定义URL。

  1. 如何在用户进行网络连接后重启此按钮? (如果通过调用另一个活动然后再次调用此webview,这样做会更容易。)

  2. 我是否正确处理了网络连接无法正常使用的代码?

    以下是我的代码:

     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;
    }
    
    }
    

3 个答案:

答案 0 :(得分:0)

在您的Button oncClickListener中调用webview.reload()以重新加载您的网址。

答案 1 :(得分:0)

答案 2 :(得分:0)

我现在使用以下方法解决了这个问题,我将其中的代码替换为:

Intent errorIntent = new Intent(this, NetworkErrorActivity.class);
startActivity(errorIntent); 
finish();

在我的新活动中,我按下按钮再次调用我之前的活动。