1. 程式人生 > >android使用webview載入H5頁面

android使用webview載入H5頁面

webview載入H5,簡單顯示:

1、佈局檔案中新增控制元件(或動態新增)activity中生成控制元件
2、webview必須設定支援js的屬性:webview.getSettings().setJavaScriptEnabled(true); 這裡還可以設定其它更多的屬性
3、載入顯示頁面:webView.loadUrl(“······”);

webview與H5互動:

1、js呼叫Android中的函式
webView.addJavascriptInterface(obj,str);
引數一:android中的例項物件
引數二:js中別名
注:如果js中呼叫此物件的某方法,須在此公有方法前加上註解@JavascriptInterface,否則訪問不了,目前只知道這種寫法只能呼叫物件的方法。
如果不加webView.setWebChromeClient()這個方法,js中的alert對話方塊將不會提示。
js中使用str.xx()/window.str.xx()呼叫android中的方法
注:Android中的list須轉換成json的字串形式傳入到js中,用eval(json)進行獲取
2、android呼叫js中的函式
js中編寫帶參或不帶參的方法 如

function init(){
    alert("js中方法顯示");
}

用webView.loadUrl(“javascript:init()”);進行呼叫顯示即可

webview中必要的屬性設定

WebSettings webSettings =  myWebView.getSettings(); 
webSettings.setDefaultTextEncodingName("utf-8");//設定編碼格式
webSettings.setWebViewClient(newWebViewClient());//限制在webview中開啟網頁,不用預設瀏覽器
webSettings.getSettings().setBuiltInZoomControls();//
設定是否支援縮放 webSettings.addJavascriptInterface(obj,str);//向html頁面注入java物件 webSettings.setUseWideViewPort(true);//設定此屬性,可任意比例縮放 webSettings.setLoadWithOverviewMode(true);// 頁面支援縮放: webSettings.setJavaScriptEnabled(true); webSettings.setBuiltInZoomControls(true); webUrl.requestFocusFromTouch(); //如果webView中需要使用者手動輸入使用者名稱、密碼或其他,則webview必須設定支援獲取手勢焦點。 webSettings.setJavaScriptEnabled(true
); //支援js webSettings.setUseWideViewPort(false); //將圖片調整到適合webview的大小 webSettings.setSupportZoom(true); //支援縮放 webSettings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); //支援內容重新佈局 webSettings.supportMultipleWindows(); //多視窗 webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); //關閉webview中快取 webSettings.setAllowFileAccess(true); //設定可以訪問檔案 webSettings.setNeedInitialFocus(true); //當webview呼叫requestFocus時為webview設定節點 webSettings.setJavaScriptCanOpenWindowsAutomatically(true); //支援通過JS開啟新視窗 webSettings.setLoadWithOverviewMode(true); // 縮放至螢幕的大小 webSettings.setLoadsImagesAutomatically(true); //支援自動載入圖片