如何在Android開發中使用 WebView 加載網頁

1. 簡介

WebView是一個基於webkit引擎、展現web頁面的控件。

Android的Webview在低版本和高版本採用了不同的webkit版本內核,4.4後直接使用了Chrome。

2. 作用

顯示和渲染Web頁面 直接使用html文件(網絡上或本地assets中)作佈局 可和JavaScript交互調用
WebView控件功能強大,除了具有一般View的屬性和設置外,還可以對url請求、頁面加載、渲染、頁面交互進行強大的處理。

3. 使用介紹


很多初學者一開始使用 WebView 當加載網頁時可能如我一般,莫名其妙的就跳轉到了系統默認的外部瀏覽器中來加載相關頁面。

不過不用擔心,小楊告訴你解決方法:

之所以會調用系統的默認外部瀏覽器來加載頁面,原因是 WebViewClient中的 shouldOverrideUrlLoading方法默認返回爲false
要使用內部的 WebView 加網頁就要重寫 shouldOverrideUrlLoading 方法,使其返回 true
代碼如下:

webView = (WebView) findViewById(R.id.webView);
webView.setWebViewClient(new WebViewClient(){
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
        }
});
webView.loadUrl("https://blog.csdn.net/HeGuang68207?form=singlemessage/");

下面再介紹些WebView的其他玩法:


Android studio創建assets目錄並且利用webView加載html

  • 1、在Android Studio中添加assets目錄,首先調整成project模式

在main的目錄下新建一文件夾叫:assets 。 WebView\src\main\assets

  • 2、利用webView加載html文件
  @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webview_layout);
        webView = (WebView) findViewById(R.id.webView);
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webView.loadUrl("file:///android_asset/index.html");
    }

其實寫到這小楊想告訴你:

還在用Android自帶的WebView組件?太Out了!

用Android自帶的WebView組件,做過一些較複雜應用的人應該都會發現,這個自帶的組件很多時候真是讓人無力吐嘈,主要理由有二:

  • Android中的WebView組件,內存泄漏的問題一直沒有非常有效的解決方案。
  • Android中的WebView組件,在4.4以前的版本是WebKit的內核,4.4以後才換成chromium的內核,各個版本之間的運行效率參差不齊。而且即使是chromium內核的版本,也因爲要考慮兼容以前的版本,而變得不是那麼美好。

感謝一直關注着禾灮成長進步的朋友們。你們的信任、支持和鼓勵,鞭策着我們一路走到了今天。

感謝所有的合作伙伴,我們相互促進,共同見證了彼此的成長。

感謝所有曾經在禾灮彼此倚靠、相互鼓勵、攜手同心、砥礪同行的兄弟姐妹。這裏承載了我們的青春與熱血。

            禾灮,感謝有你。

未來,我們將一如既往,砥礪前行。

                                    禾灮·小楊
                                   2018.08.22
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章