H5頁(yè)面與原生交互的方法之 二萄窜、JsBridge

JsBridge配置方法請(qǐng)看第一篇
H5頁(yè)面與原生交互的方法之 一圣勒、addJavascriptInterface

JsBridge的使用方法

js調(diào)用java

1膝迎、指定處理者
java創(chuàng)建處理者

        webView.registerHandler("submitFromWeb", new BridgeHandler() {
            @Override
            public void handler(String data, CallBackFunction function) {
                CusToast.showToast("皇上收到請(qǐng)求:" + data);
                function.onCallBack("朕準(zhǔn)了");
            }
        });

js指定處理者

        function testClick() {
            var str1 = document.getElementById("text1").value;

            //send message to native
            var data = {str1};
            window.WebViewJavascriptBridge.callHandler('submitFromWeb'
               , {'param': data}
               , function(responseData) {
                    document.getElementById("show").innerHTML = responseData;
               });
        }

html

<input type="text" id="text1" value="請(qǐng)皇上賞賜美女一名" />
<input type="button" id="enter" value="向皇上提出要求" onclick="testClick();"/>

2盆色、不指定處理者
java添加默認(rèn)處理者

        webView.setDefaultHandler(new BridgeHandler() {
            @Override
            public void handler(String data, CallBackFunction function) {
                CusToast.showToast("收到j(luò)s發(fā)送的信息" + data);
                function.onCallBack("copy that");
            }
        });

js發(fā)送信息

        //發(fā)送泛消息
        function testClick1() {
            var data = "";
            window.WebViewJavascriptBridge.send(
                    data
                    , function(responseData) {
                        document.getElementById("show").innerHTML = "repsonseData from java, data = " + responseData
                    }
            );
        }

html

<input type="button" id="enter1" value="發(fā)送信息" onclick="testClick1();"/>
java調(diào)用js

1灰蛙、指定處理者
js創(chuàng)建處理者

        // 注冊(cè)回調(diào)函數(shù),第一次連接時(shí)調(diào)用 初始化函數(shù)
        connectWebViewJavascriptBridge(function(bridge) {
            // 接收native發(fā)來(lái)的消息隔躲,指定處理者摩梧,返回給native結(jié)果
            bridge.registerHandler("functionInJs", function(data, responseCallback) {
                document.getElementById("init").innerHTML = ("結(jié)果: = " + data);
                if (responseCallback) {
                    var responseData = "被皇上寵幸";
                    responseCallback(responseData);
                }
            });
        })

java指定處理者

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                webView.callHandler("functionInJs", "宣老周進(jìn)殿", new CallBackFunction() {

                    @Override
                    public void onCallBack(String data) {
                        CusToast.showToast("接收到j(luò)s返回的數(shù)據(jù):" + data);
                    }
                });
            }
        });

2、不指定處理者
js接收native發(fā)送的消息

        // 注冊(cè)回調(diào)函數(shù)蹭越,第一次連接時(shí)調(diào)用 初始化函數(shù)
        connectWebViewJavascriptBridge(function(bridge) {
            //接收native發(fā)來(lái)的泛消息
            bridge.init(function(message, responseCallback) {
                console.log('JS got a message', message);
                var data = {
                    '皇子': '朱棣',
                    '皇孫': '朱高熾'
                };
                console.log('JS responding with', data);
                responseCallback(data);
            });
        })

java發(fā)送消息

        webView.send("朱八八駕崩了", new CallBackFunction() {
            @Override
            public void onCallBack(String data) {
                CusToast.showToast("進(jìn)京皇子皇孫有:" + data);
            }
        });

js初始化注冊(cè)事件監(jiān)聽(tīng)障本,固定寫(xiě)法

        function connectWebViewJavascriptBridge(callback) {
            if (window.WebViewJavascriptBridge) {
                callback(WebViewJavascriptBridge)
            } else {
                document.addEventListener(
                    'WebViewJavascriptBridgeReady'
                    , function() {
                        callback(WebViewJavascriptBridge)
                    },
                    false
                );
            }
        }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末教届,一起剝皮案震驚了整個(gè)濱河市响鹃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌案训,老刑警劉巖买置,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異强霎,居然都是意外死亡忿项,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)城舞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)轩触,“玉大人,你說(shuō)我怎么就攤上這事家夺⊥阎” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵拉馋,是天一觀的道長(zhǎng)榨为。 經(jīng)常有香客問(wèn)我,道長(zhǎng)煌茴,這世上最難降的妖魔是什么随闺? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮蔓腐,結(jié)果婚禮上矩乐,老公的妹妹穿的比我還像新娘。我一直安慰自己回论,他們只是感情好散罕,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布撒璧。 她就那樣靜靜地躺著,像睡著了一般笨使。 火紅的嫁衣襯著肌膚如雪卿樱。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,792評(píng)論 1 290
  • 那天硫椰,我揣著相機(jī)與錄音繁调,去河邊找鬼。 笑死靶草,一個(gè)胖子當(dāng)著我的面吹牛蹄胰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播奕翔,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼裕寨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了派继?” 一聲冷哼從身側(cè)響起宾袜,我...
    開(kāi)封第一講書(shū)人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎驾窟,沒(méi)想到半個(gè)月后庆猫,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡绅络,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年月培,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恩急。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡杉畜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出衷恭,到底是詐尸還是另有隱情此叠,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布匾荆,位于F島的核電站荤西,受9級(jí)特大地震影響瘪弓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一驶乾、第九天 我趴在偏房一處隱蔽的房頂上張望栈妆。 院中可真熱鬧愕提,春花似錦锐墙、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)智玻。三九已至,卻和暖如春芙代,著一層夾襖步出監(jiān)牢的瞬間吊奢,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工纹烹, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留页滚,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓铺呵,卻偏偏與公主長(zhǎng)得像裹驰,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子片挂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容