日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Javascript和android原生互调

發布時間:2023/12/9 java 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Javascript和android原生互调 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在做原生和js端的互調的功能,自己改了個demo,給大家講解下。
先上js代碼

<!DOCTYPE html> <html> <head><meta charset="UTF-8"><title>方法調用基本流程測試</title> </head> <body> <div id="helloweb"> <div id="echoInfo">如果有數據返回,會顯示在這兒</div></div><script type="text/javascript">function funFromjs(){document.getElementById("helloweb").innerHTML="HelloWebView,i'm from js";}function echoInfo( container, obj ){var domContainer = document.getElementById('echoInfo');domContainer.innerHTML = JSON.stringify( obj );}//function windowCallback( str ){//echoInfo( 'echoInfo', str );//}window.windowCallback = function( str ){echoInfo( 'echoInfo', str );};var MfsJSBridge = MfsJSBridge || undefined;if( undefined != MfsJSBridge ){//看這里var params = {id : 1,name : '測試'};var strParams = JSON.stringify( params );MfsJSBridge.invoke( 'testFunc', strParams, 'windowCallback');}else{alert('未定義MfsJSBridge');}</script></body> </html>

android webview 設置可用javascript

//設置編碼mWebView.getSettings().setDefaultTextEncodingName("utf-8");//支持js mWebView.getSettings().setJavaScriptEnabled(true);

android 調js

mBtn1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {mWebView.loadUrl("javascript:funFromjs()");//其中funFromjs()為js的方法Toast.makeText(mContext, "調用javascript:funFromjs()", Toast.LENGTH_LONG).show();}});

js調原生,原生響應時間并回調數據

mWebView.addJavascriptInterface(new Object(){//注意4.4以后加注解,位置在這個方法名上面,鑒于很多這個的例子,瞎、、寫注解位置,并需要下 //載積分寫了這個@JavascriptInterfacepublic void invoke(String name ,String t,String callback) {if(name.equals("testFunc")){ //其中t 為js帶過來的數據 Toast.makeText(mContext, t,Toast.LENGTH_LONG).show();String strJson = "{\"code\":122, \"msg\":\"1231\", \"data\":null}";//回調數據給js 其中callback 為android 掉js 的方法名稱。mWebView.loadUrl("javascript:"+ callback +"('" + strJson + "')");}// Toast.makeText(mContext, name, Toast.LENGTH_LONG).show();}},"MfsJSBridge");

代碼比較簡單,最主要的是 @JavascriptInterface注解的位置大家注意下。

源碼下載

轉載于:https://www.cnblogs.com/forezp/p/9852223.html

總結

以上是生活随笔為你收集整理的Javascript和android原生互调的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。