摘要:傳值給原生通過方法傳值,簡單模擬了點擊事件來傳遞。第一個參數(shù)是約定注冊的名稱,與原生接受處方法名一致第二個參數(shù)是要傳遞的值第三個參數(shù)是接受原生返回的回調(diào)。
文章鏈接:https://mp.weixin.qq.com/s/Iqd0dKM-ZW4UwkIgSTnvYg
在上一篇文章「android 記一次富文本加載之路」中 介紹了關(guān)于android加載富文本的方法,其中提到的加載html 文件的,app拿到后臺的json格式數(shù)據(jù),傳到html模板文件里進(jìn)行渲染交互,如下的一段html代碼
設(shè)函數(shù)
后的顯示效果
同時還需要與js進(jìn)行交互,這里選用 DSBridge,支持X5內(nèi)核。
implementation "com.github.wendux:DSBridge-Android:x5-3.0-SNAPSHOT"
使用
html 文件里需要引用這個庫提供的js文件 dsbridge 的相對路徑。
同時加上
適應(yīng)手機屏幕的大小
準(zhǔn)備一個簡單的html文件
<span class="nginx"><span class="hljs-attribute">Title</span></span>
div 塊用于展示html代碼的
原生傳遞值給js通過webView.callHandler() 方法調(diào)用
第一個參數(shù)是約定注冊的名稱,與js接受處一致;
第二個參數(shù)是要傳遞的值,這里將data轉(zhuǎn)成了 json String 的傳給前端;
第三個參數(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() 方法接受
第一個參數(shù)是上面的注冊名,與原生保持一致;
第二個是js的方法,參數(shù)data就是 傳遞的值,這里通過JSON.parse() 格式化,方法的return返回值就是傳遞給原生的,對應(yīng)上面的第三個參數(shù)。
js傳值給原生
js通過dsBridge.call() 方法傳值,簡單模擬了點擊事件來傳遞。
第一個參數(shù)是約定注冊的名稱,與原生接受處方法名一致;
第二個參數(shù)是要傳遞的值;
第三個參數(shù)是接受原生返回的回調(diào)。
function test(){ dsBridge.call("jsToNative", "test", function (res) { console.log(res) }); }
原生接受,通過JavascriptInterface注解,方法名與注冊名一致
第一個參數(shù)是傳遞的值;
第二個參數(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"); } }
這里介紹的是簡單的原生js交互的使用,更多的可以參考github文檔https://github.com/wendux/DSBridge-Android
歡迎關(guān)注我的個人博客:https://www.manjiexiang.cn/
更多精彩歡迎關(guān)注微信號:春風(fēng)十里不如認(rèn)識你
一起學(xué)習(xí),一起進(jìn)步,歡迎上車,有問題隨時聯(lián)系,一起解決!!!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/53191.html
摘要:傳值給原生通過方法傳值,簡單模擬了點擊事件來傳遞。第一個參數(shù)是約定注冊的名稱,與原生接受處方法名一致第二個參數(shù)是要傳遞的值第三個參數(shù)是接受原生返回的回調(diào)。 文章鏈接:https://mp.weixin.qq.com/s/Iqd0dKM-ZW4UwkIgSTnvYg 在上一篇文章「android 記一次富文本加載之路」中 介紹了關(guān)于android加載富文本的方法,其中提到的加載html...
摘要:安全安全是很重要的,現(xiàn)在有些實現(xiàn)中使用了,而在之前,存在任意代碼執(zhí)行漏洞,這就會導(dǎo)致嚴(yán)重的安全問題。 showImg(https://segmentfault.com/img/bV4k9Q?w=719&h=372); 什么是JS Bridge 在大多數(shù)APP開發(fā)過程中,都會通過H5來實現(xiàn)部分功能,而Hybird APP基本90%以上都是H5。現(xiàn)在很少有純原生的APP。但是,由于H5頁面...
閱讀 2263·2023-04-26 02:14
閱讀 2934·2021-09-30 09:46
閱讀 2106·2021-09-24 09:48
閱讀 967·2021-09-24 09:47
閱讀 3257·2019-08-30 15:44
閱讀 1884·2019-08-30 15:44
閱讀 3287·2019-08-30 14:18
閱讀 1955·2019-08-30 12:58
极致性价比!云服务器续费无忧!
Tesla A100/A800、Tesla V100S等多种GPU云主机特惠2折起,不限台数,续费同价。
NVIDIA RTX 40系,高性价比推理显卡,满足AI应用场景需要。
乌兰察布+上海青浦,满足东推西训AI场景需要