android和H5交互

最近在做一個藍牙項目,需要用到圖表,感覺H5的圖表要比android一些第三方控件要簡單靈活一些,之前一直用的是原生開發(fā),于是對android和H5交互傳遞數(shù)據做了一些研究,下面對最近的研究做一些記錄:

第一種是直接調用JS里面的方法,不用等到頁面加載完成,簡單講就是該js方法不需要寫在onload方法里面或者Jquery的頁面加載回調方法中。但是,要調用在在onload方法里面或者Jquery的頁面加載回調方法中的方法,這樣是不可以的,那么怎么做才能調用呢?看第二條。

1.用到的android原生控件是傳統(tǒng)的WebView,還需要會一些簡單的HTML5的基礎知識。

//從xml中獲取WebView控件對象

WebView wv=(WebView)findViewById(R.id.wb);

//獲取WebView的Setting配置對象

WebSettings ws=wv.getSettings();

//設置WebView是否可以執(zhí)行javascript

ws.setJavaScriptEnabled(true);

//設置WebView是否支持縮放

ws.setSupportZoom(true);

//創(chuàng)建WebViewClient對象

wv.setWebViewClient(new WebViewClient());

//創(chuàng)建WebViewChromeClient?

wv.setWebChromeClient(new WebChromeClient());

2.html文件放到main下的assets目錄下,使用的時候采用loadUrl()將“file:///android_asset/myAndroid.html”參數(shù)傳遞進來。

//將assets目錄下的HTML加載到WebView

wv.loadUrl("file:///android_asset/myAndroid.html");

3.WebView有一個addJavascriptInterface()方法,可以獲取從HTML文件中獲取數(shù)據傳遞到android程序中,然后渲染原生控件。

//HTML數(shù)據傳過來在android程序中的數(shù)據接口

wv.addJavascriptInterface(new AsForjs(this),"Android");

final String str="這是一個來自android的數(shù)據";

以上是簡單調用js中不寫入頁面加載完成回調里面的方法,如果想調用這里面的方法,可以將script標簽寫到body最后


直接看代碼吧:https://github.com/wxp19940506/AppTransHtml.git

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容