2015-12-14 50 views
1

我想在Android中使用Webview打開鏈接。 WebView中嵌入了一些鏈接。我的問題是webview不打開任何不以www開頭的鏈接。例如,www.google.com正在工作,但maps.google.com不是。我也試圖覆蓋WebViewClient,但它不起作用。 我注意到的一件事是將Toast放在WebViewClient中查看被調用的URL。它非常適合www.google.com,但沒有爲其他鏈接返回。我的事情WebViewClient沒有得到覆蓋在這種情況下。可能是什麼原因。我必須調用任何方法或webview的一些屬性。 任何幫助將不勝感激。我已經設置WebView鏈接不開放

menuView.setWebViewClient(new WebViewClient() { 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      super.shouldOverrideUrlLoading(view, url); 
      Toast.makeText(getApplicationContext(), "url:--" + url, Toast.LENGTH_LONG).show();   
      view.loadUrl(url); 
      return false; 
    } 

    }); 

屬性是:

menuView.setVerticalScrollBarEnabled(假);

menuView.setHorizontalScrollBarEnabled(false); 

    final WebSettings webSettings = menuView.getSettings(); 
    menuView.getSettings().setJavaScriptEnabled(true); 
    webSettings.setJavaScriptCanOpenWindowsAutomatically(true); 
    webSettings.setSupportMultipleWindows(true); 

    webSettings.setPluginState(PluginState.ON); 
    webSettings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); 

    menuView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
    menuView.getSettings().setBuiltInZoomControls(true); 
    // Below required for geolocation 
    menuView.getSettings().setJavaScriptEnabled(true); 
    menuView.getSettings().setGeolocationEnabled(true); 

    webSettings.setGeolocationEnabled(true); 

    webSettings.setJavaScriptCanOpenWindowsAutomatically(true); 
+0

發佈任何代碼段的可以理解 – Jas

+0

@jas添加的代碼 – Payal

+0

使用完整的URL以https://像webview.loadUrl( 「https://maps.google.com」); – koutuk

回答

2
// in oncreate 
webview.setWebChromeClient(new wecrome()); 
webview.getSettings().setJavaScriptEnabled(true); 
webview.getSettings().setLoadsImagesAutomatically(true); 
webview.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); 
webview.setWebViewClient(new MyBrowser()); 
webview.getSettings().setPluginState(PluginState.ON); 
webview.loadUrl("http://www.example.net/locations/"); 

//inner class 
private class MyBrowser extends WebViewClient { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      view.loadUrl(url); 
      view.addJavascriptInterface(new Object() { 
       @JavascriptInterface 
       public void performClick() throws Exception { 
        Log.d("LOGIN::", "Clicked"); 
        Toast.makeText(googleplus.this, "Login clicked", 
          Toast.LENGTH_LONG).show(); 
       } 
      }, "login"); 
      return true; 
     } 

     @Override 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 
      // TODO Auto-generated method stub 

      System.out.println("started"); 
      pd.show(); 
      super.onPageStarted(view, url, favicon); 

     } 

     @Override 
     public void onPageFinished(WebView view, String url) { 
      // TODO Auto-generated method stub 
      pd.dismiss(); 
      System.out.println("ends"); 
      super.onPageFinished(view, url); 

     } 

    }