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