1. 程式人生 > >android進階4step3:Android拓展——WebView 的使用

android進階4step3:Android拓展——WebView 的使用

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; 
}

});