簡體   English   中英

Android WebView href不支持HTML頁面

[英]Android webview href not support in html page

我想通過單擊android webview中index.html中的按鈕來加載到資產文件夾中的about.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>

我該如何解決?

為TagHandler寫一個接口,並在fromHtml方法中檢查標簽並通過加載頁面來處理它

https://developer.android.com/reference/android/text/Html.html

試試這個代碼:

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 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM