摘要:傳值給原生通過方法傳值,簡(jiǎn)單模擬了點(diǎn)擊事件來傳遞。第一個(gè)參數(shù)是約定注冊(cè)的名稱,與原生接受處方法名一致第二個(gè)參數(shù)是要傳遞的值第三個(gè)參數(shù)是接受原生返回的回調(diào)。
文章鏈接:https://mp.weixin.qq.com/s/Iqd0dKM-ZW4UwkIgSTnvYg
在上一篇文章「android 記一次富文本加載之路」中 介紹了關(guān)于android加載富文本的方法,其中提到的加載html 文件的,app拿到后臺(tái)的json格式數(shù)據(jù),傳到html模板文件里進(jìn)行渲染交互,如下的一段html代碼
設(shè)函數(shù)
后的顯示效果
同時(shí)還需要與js進(jìn)行交互,這里選用 DSBridge,支持X5內(nèi)核。
implementation "com.github.wendux:DSBridge-Android:x5-3.0-SNAPSHOT"使用
html 文件里需要引用這個(gè)庫(kù)提供的js文件 dsbridge 的相對(duì)路徑。
同時(shí)加上
適應(yīng)手機(jī)屏幕的大小
準(zhǔn)備一個(gè)簡(jiǎn)單的html文件
Title
div 塊用于展示html代碼的
原生傳遞值給js通過webView.callHandler() 方法調(diào)用
第一個(gè)參數(shù)是約定注冊(cè)的名稱,與js接受處一致;
第二個(gè)參數(shù)是要傳遞的值,這里將data轉(zhuǎn)成了 json String 的傳給前端;
第三個(gè)參數(shù)是接受js返回的回調(diào),可用于js接受成功后,再去通知原生。
HtmlData data = new HtmlData(); data.html = txt; webView.callHandler("nativeToJs", new Object[]{new Gson().toJson(data)}, new OnReturnValue() { @Override public void onValue(String o) { } });
js接受傳值,直接通過dsBridge.register() 方法接受
第一個(gè)參數(shù)是上面的注冊(cè)名,與原生保持一致;
第二個(gè)是js的方法,參數(shù)data就是 傳遞的值,這里通過JSON.parse() 格式化,方法的return返回值就是傳遞給原生的,對(duì)應(yīng)上面的第三個(gè)參數(shù)。
js通過dsBridge.call() 方法傳值,簡(jiǎn)單模擬了點(diǎn)擊事件來傳遞。
第一個(gè)參數(shù)是約定注冊(cè)的名稱,與原生接受處方法名一致;
第二個(gè)參數(shù)是要傳遞的值;
第三個(gè)參數(shù)是接受原生返回的回調(diào)。
function test(){ dsBridge.call("jsToNative", "test", function (res) { console.log(res) }); }
原生接受,通過JavascriptInterface注解,方法名與注冊(cè)名一致
第一個(gè)參數(shù)是傳遞的值;
第二個(gè)參數(shù)可回調(diào)信息給js;
webView.addJavascriptObject(new JsApi(), null); public class JsApi { @JavascriptInterface public void jsToNative(Object msg, CompletionHandlerhandler) { handler.complete(msg+"回調(diào)給js"); } }
這里介紹的是簡(jiǎn)單的原生js交互的使用,更多的可以參考github文檔https://github.com/wendux/DSBridge-Android
歡迎關(guān)注我的個(gè)人博客:https://www.manjiexiang.cn/
更多精彩歡迎關(guān)注微信號(hào):春風(fēng)十里不如認(rèn)識(shí)你
一起學(xué)習(xí),一起進(jìn)步,歡迎上車,有問題隨時(shí)聯(lián)系,一起解決!??!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/53191.html
摘要:傳值給原生通過方法傳值,簡(jiǎn)單模擬了點(diǎn)擊事件來傳遞。第一個(gè)參數(shù)是約定注冊(cè)的名稱,與原生接受處方法名一致第二個(gè)參數(shù)是要傳遞的值第三個(gè)參數(shù)是接受原生返回的回調(diào)。 文章鏈接:https://mp.weixin.qq.com/s/Iqd0dKM-ZW4UwkIgSTnvYg 在上一篇文章「android 記一次富文本加載之路」中 介紹了關(guān)于android加載富文本的方法,其中提到的加載html...
摘要:安全安全是很重要的,現(xiàn)在有些實(shí)現(xiàn)中使用了,而在之前,存在任意代碼執(zhí)行漏洞,這就會(huì)導(dǎo)致嚴(yán)重的安全問題。 showImg(https://segmentfault.com/img/bV4k9Q?w=719&h=372); 什么是JS Bridge 在大多數(shù)APP開發(fā)過程中,都會(huì)通過H5來實(shí)現(xiàn)部分功能,而Hybird APP基本90%以上都是H5。現(xiàn)在很少有純?cè)腁PP。但是,由于H5頁(yè)面...
閱讀 2271·2023-04-26 02:14
閱讀 2937·2021-09-30 09:46
閱讀 2113·2021-09-24 09:48
閱讀 974·2021-09-24 09:47
閱讀 3262·2019-08-30 15:44
閱讀 1887·2019-08-30 15:44
閱讀 3292·2019-08-30 14:18
閱讀 1962·2019-08-30 12:58