真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

android和js的交互之jsbridge使用教程

前言

成都創(chuàng)新互聯(lián)公司主營磴口網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app開發(fā)定制,磴口h5重慶小程序開發(fā)搭建,磴口網(wǎng)站營銷推廣歡迎磴口等地區(qū)企業(yè)咨詢

眾所周知,app的一些功能可能會使用到H5開發(fā),這就難免會遇到j(luò)ava與js 的相互調(diào)用,android 利用WebViewJavascriptBridge 實現(xiàn)js和java的交互,這里介紹下JsBridge第三方庫的使用。

github傳送門:https://github.com/lzyzsd/JsBridge  (本地下載)

簡單分析

java與js相互調(diào)用如下:

java發(fā)送數(shù)據(jù)給js,js接收并回傳給java

同理,js發(fā)送數(shù)據(jù)給java,java接收并回傳給js

同時兩套流程都存在「默認接收」 與 「指定接收」

大致調(diào)用流程圖如下:

android和js的交互之jsbridge使用教程

android和js的交互之jsbridge使用教程

依賴

項目build.gradle

repositories {
 // ...
 maven { url "https://jitpack.io" }
}

app build.gradle

dependencies {
 compile 'com.github.lzyzsd:jsbridge:1.0.4'
}

xml里直接使用com.github.lzyzsd.jsbridge.BridgeWebView替代原生WebView

另外放置兩個Button用于測試使用

<?xml version="1.0" encoding="utf-8"?>

 

html文件里簡單放置兩按鈕發(fā)送數(shù)據(jù),同時提供打印信息



 
 Title




打印信息

這里我本地跑的一個簡單的django項目,起了個服務(wù)供使用

webView.loadUrl(http://10.0.0.142:8000/cake/jsbridge);

webview加載頁面

android和js的交互之jsbridge使用教程

java發(fā)送數(shù)據(jù)給js

button注冊監(jiān)聽

javaToJsDefault.setOnClickListener(this);
javaToJsSpec.setOnClickListener(this);

按鈕點擊事件,java傳遞數(shù)據(jù)給js

 //java傳遞數(shù)據(jù)給js
 @Override
 public void onClick(View v) {
  switch (v.getId()) {
   case R.id.java_to_js_default:
    //默認接收
    webView.send("發(fā)送數(shù)據(jù)給js默認接收", new CallBackFunction() {
     @Override
     public void onCallBack(String data) { //處理js回傳的數(shù)據(jù)
      Toast.makeText(WebTestActivity.this, data, Toast.LENGTH_LONG).show();
     }
    });
    break;
   case R.id.java_to_js_spec:
    //指定接收參數(shù) functionInJs
    webView.callHandler("functionInJs", "發(fā)送數(shù)據(jù)給js指定接收", new CallBackFunction() {
     @Override
     public void onCallBack(String data) { //處理js回傳的數(shù)據(jù)
      Toast.makeText(WebTestActivity.this, data, Toast.LENGTH_LONG).show();
     }
    });
    break;
   default:
    break;
  }
 }

js WebViewJavascriptBridge注冊事件監(jiān)聽,接收數(shù)據(jù)