2017-05-01 56 views
1

我想添加吐司說這個webview代碼「沒有互聯網連接」,我嘗試了不止一次,但失敗了,我打開這個webview按鈕在MainActivity,我希望能夠寫一個乾淨和完整的webview代碼,但我有幾個在android plez幫助經驗,代碼如何添加吐司說「沒有互聯網連接」到webview?

public class ShowWeb extends AppCompatActivity { 

ProgressDialog progressDialog; 
WebView webview; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_show_web); 

    String Url = getIntent().getStringExtra("url"); 

    WebView web = (WebView)findViewById(R.id.webview); 
    web.loadUrl(Url); 


    //Get webview 
    WebView webView = (WebView) findViewById(R.id.webview); 
    //startWebView("http://50.73.3.244/Mobile/"); 

    // Javascript inabled on webview 
    webView.getSettings().setJavaScriptEnabled(true); 

    // Other webview options التكبير والتصغير 
    webView.getSettings().setLoadWithOverviewMode(true); 

    //webView.getSettings().setUseWideViewPort(true); 

    //Other webview settings 
    webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 
    webView.setScrollbarFadingEnabled(false); 
    webView.getSettings().setBuiltInZoomControls(true); 
    webView.getSettings().setPluginState(WebSettings.PluginState.ON); 
    webView.getSettings().setAllowFileAccess(true); 
    webView.getSettings().setSupportZoom(true); 
} 

//Show loader on url load 
public void onLoadResource (WebView view, String url) { 

    // if url contains string androidexample 
    // Then show progress Dialog 
    if (progressDialog == null && url.contains("lol") 
      ) { 

     // in standard case YourActivity.this 
     progressDialog = new ProgressDialog(ShowWeb.this); 
     progressDialog.setMessage("Loading..."); 
     progressDialog.show(); 
    } 
} 

}

回答

1

我看到了兩種方法來解決這個問題。

方法1:

首先檢查網絡連接。如果可用,則加載url,否則顯示Toast並顯示消息「No Internet Available」。

WebView web = (WebView)findViewById(R.id.webview); 
if(isNetworkStatusAvialable (getApplicationContext())) { 
    web.loadUrl(Url); 
} else { 
    Toast.makeText(this, "No Internet Connection", Toast.LENGTH_SHORT).show(); 
} 

...

public static boolean isNetworkStatusAvialable (Context context) { 
    ConnectivityManager cm = 
     (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 

NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); 
return activeNetwork != null && 
         activeNetwork.isConnectedOrConnecting(); 

} 

方式2: 使用WebViewClient onReceivedError回調從資產裝入默認頁。

mWebView.setWebViewClient(new WebViewClient() { 
    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
     mWebView.loadUrl("file:///android_asset/myerrorpage.html"); 

    } 
}); 
0

試試這個

webView.setWebViewClient(new WebViewClient() { 
    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
     // show no internet connection toast message here 
    } 
}); 
0

你可以調用Web視圖之前檢查。

  if (internet) 
     { 

String Url = getIntent().getStringExtra("url"); 

WebView web = (WebView)findViewById(R.id.webview); 
web.loadUrl(Url); 


//Get webview 
WebView webView = (WebView) findViewById(R.id.webview); 
//startWebView("http://50.73.3.244/Mobile/"); 

// Javascript inabled on webview 
webView.getSettings().setJavaScriptEnabled(true); 

// Other webview options التكبير والتصغير 
webView.getSettings().setLoadWithOverviewMode(true); 

//webView.getSettings().setUseWideViewPort(true); 

//Other webview settings 
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 
webView.setScrollbarFadingEnabled(false); 
webView.getSettings().setBuiltInZoomControls(true); 
webView.getSettings().setPluginState(WebSettings.PluginState.ON); 
webView.getSettings().setAllowFileAccess(true); 
webView.getSettings().setSupportZoom(true); 

    }else{ 
Toast.makeText(getActivity,"no internet",LARGETEXT).show(); 
    }