android使用webview載入H5頁面
阿新 • • 發佈:2019-01-09
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); //支援自動載入圖片