2017-05-01 6 views
1

Toastはこのwebviewコードに「no internet connection」と言う言葉を追加したいと思います。一回以上試みましたが、失敗しました。MainActivityのボタンでこのwebviewを開きます。私はきれいで完全なwebviewコードを書くことを望んでいました。アンドロイドplezヘルプの経験、コードToastにwebviewに「no internet connection」と言って追加するにはどうしたらいいですか?

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

この問題を解決する方法は2つあります。

ウェイ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

は、Webビューを呼び出す前に確認することができ、この

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

を試してみてください。

  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(); 
    } 
関連する問題