Android與html5交互 -- WebView使用(一)


Android中使用WebView可加載html5,具體步驟如下:

(前提:本地Html5存放到assets文件夾下)

一:使用WebView加載Html5,簡單顯示

1:清單文件中添加訪問權限:android.permission.INTERNET

2:Activity中生成WebView組件,布局文件中添加<WebView>控件,或者動態添加

3:本地文件html5中有js的話,webview必須設置支持js的屬性:webview.getSettings().setJavaScriptEnabled(true);  這里可以設置其它屬性,隨后附上

4:使用WebView加載html5文件 :webView.loadUrl("file:///android_asset/XX.html");

二:WebView與html5之間的交互

<1>js調用Android中的函數

1:webView.addJavascriptInterface(obj,str);

參數一:android中的實例對象

參數二:js中別名

注:如果js中調用此對象的某方法,須在此公有方法前加上注解@JavascriptInterface,否則訪問不了,目前只知道這種寫法只能調用對象的方法。

如果不加webView.setWebChromeClient()這個方法,js中的alert對話框將不會提示。

2:js中使用str.xx()/window.str.xx()調用android中的方法

(Android中的list須轉換成json的字符串形式傳入到js中,用eval(json)進行獲取)

<2>anroid中調用js的方法

1:js中編寫帶參或不帶參的方法 如function init(){alert("js中方法顯示");}

2:用webView.loadUrl("javascript:init()");進行調用顯示即可

三:webView加載html5全屏顯示解決辦法

1:<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,initial-scale=1.0" user-scalable=no />

四:webView的屬性(必要的)

myWebView.getSettings().setJavaScriptEnabled(true);//可以使用js

myWebView.getSettings().setDefaultTextEncodingName("GBK");//設置編碼格式

myWebView.setWebViewClient(newWebViewClient());//限制在webview中打開網頁,不用默認瀏覽器

myWebView.getSettings().setBuiltInZoomControls();//設置是否支持縮放

myWebView.addJavascriptInterface(obj,str);//向html頁面注入java對象,在Android4.2之

前並未限制此方法,根據java反射機制造成攻擊,所以在此版本之后則限制了js對java對象方法調用的權

限(必須聲明注解公共的方法才能被頁面調用)

 

 

轉載:http://blog.csdn.net/dongyaqin/article/details/50925388  不吃腥的貓博客

只做學習交流用,給自己留個備份 ,只使用到了  加上注解@JavascriptInterface這個方法 彈出窗口


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM