2017-02-09 127 views
0

我想通过点击android webview中的index.html中的按钮来加载到资产文件夹内的about.html页面。Android webview href不支持html页面

下面的代码:

按钮:

<a href="about.html">About</a> 

的Java:

WebView browser = (WebView) findViewById(webview); 
    browser.getSettings().setJavaScriptEnabled(true); 
    browser.setWebChromeClient(new WebChromeClient()); 
    browser.loadUrl("file:///android_asset/www/index.html"); 
    browser.setWebViewClient(new WebViewClient() { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      view.loadUrl(url); 
      return false; 
     } 
    }); 

但问题是,当我点击链接它不会加载about.html但如果我添加一个JavaScript函数与下面的代码它的作品..但我想用href。

代码:

<button onclick="about()">About</button> 
<script> 
     function about() { 
      location.href = "about.html"; 
     } 
</script> 

如何解决这个问题呢?

回答

0

试试这个代码:

private void loadWebView(WebView webView,String htmlString) 
{ 
try { 
     final String mimeType = "text/html"; 
     final String encoding = "UTF-8"; 

      WebViewClient yourWebClient = new WebViewClient() 
      { 
       @Override 
       public boolean shouldOverrideUrlLoading(WebView view, String url) 
       { 
       // This line we let me load only pages inside Webpage 
       if (url.contains("") == true) 
        // Load new URL Don't override URL Link 
        return false; 

       // Return true to override url loading (In this case do nothing). 
       return true; 
       } 
      }; 


      // Get Web view 
      webView.getSettings().setJavaScriptEnabled(true); 
      webView.getSettings().setSupportZoom(true); 
      webView.getSettings().setBuiltInZoomControls(true); 
      webView.setWebViewClient(yourWebClient); 

      // Load URL 
      webView.loadDataWithBaseURL("", htmlString, mimeType, encoding, ""); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

使用它作为:

loadWebView(browser, "file:///android_asset/www/index.html") //pass url 
+0

试试这个答案。 – rafsanahmad007