android進階4step3:Android拓展——WebView 的使用
阿新 • • 發佈:2018-12-21
1、WebView 是什麼?
WebView 的使用
WebView 是一個基於 WebKit 引擎、展現 web 頁面顯示 HTML 內容的控制元件。
2、WebView 的作用是什麼?
- 1)顯示和渲染 Web 頁面
- 2)直接顯示 html 頁面(網路或本地 assets 中)
- 3)與 JavaScript 互動處理
3、WebView 如何使用?
- 1)在 AndroidManifest.xml 中新增聯網許可權
<uses-permission android:name="android.permission.INTERNET"/>
- 2)在 xml 佈局中新增 WebView
<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/wv"
/>
- 3)在 java 中獲取例項並載入頁面
WebView wv = (WebView) findViewById(R.id.wv);
a、 載入本地 assets 中的 html 檔案
wv.loadUrl("file:///android_asset/xx.html");
b、載入 web 資源
wv.loadUrl("http://baidu.com");
執行效果如下圖:
4、WebView 的常用方法?
- 1)設定頁面支援 JavaScript
WebSettings settings = wv.getSettings();
settings.setJavaScriptEnabled(true);
- 2)設定頁面支援定位
wv.getSettings().setGeolocationEnabled(true);
同時需要在 AndroidManifest.xml 中新增定位許可權;
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
注意:如果版本是 Android6.0 以後,還需要新增執行時許可權。動態獲取許可權的封裝
- 3)如果想按下返回按鈕返回上一個介面,而不是退出當前 activity,可以新增如下程式碼:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (wv.canGoBack())
{
wv.goBack();
return true;
}
else
{
System.exit(0);}
}
return super.onKeyDown(keyCode, event);
}
- 4)設定不載入外部的瀏覽器:
wv.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request)
{
wv.loadUrl(request.getUrl().toString());
return true;
}
});