WebView可以使得網頁輕松的內嵌到app里,還可以直接跟js相互調用。
webview有兩個方法:setWebChromeClient 和 setWebClient
setWebClient:主要處理解析,渲染網頁等瀏覽器做的事情
setWebChromeClient:輔助WebView處理Javascript的對話框,網站圖標,網站title,加載進度等
WebViewClient就是幫助WebView處理各種通知、請求事件的。
在AndroidManifest.xml設置訪問網絡權限:
<uses-permission android:name="android.permission.INTERNET"/>
控件:
<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/webView"
/>
加載本地資源
webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("file:///android_asset/example.html");
加載web資源:
webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("http://baidu.com");
創建一個自己的WebViewClient,通過setWebViewClient關聯
package com.example.testopen;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends Activity {
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
init();
}
private void init(){
webView = (WebView) findViewById(R.id.webView);
//WebView加載web資源
webView.loadUrl("http://baidu.com");
//覆蓋WebView默認使用第三方或系統默認瀏覽器打開網頁的行為,使網頁用WebView打開
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
//返回值是true的時候控制去WebView打開,為false調用系統瀏覽器或第三方瀏覽器
view.loadUrl(url);
return true;
}
});
}
}
