#JsBridge
-----
inspired and modified from [this](https://github.com/jacin1/JsBridge) and wechat jsBridge file, with some bugs fix and feature enhancement.
This project make a bridge between Java and JavaScript.
It provides safe and convenient way to call Java code from js and call js code from java.
## Demo
![JsBridge Demo](https://raw.githubusercontent.com/lzyzsd/JsBridge/master/JsBridge.gif)
## Usage
## JitPack.io
I strongly recommend https://jitpack.io
```groovy
repositories {
// ...
maven { url "https://jitpack.io" }
}
dependencies {
compile 'com.github.lzyzsd:jsbridge:1.0.4'
}
```
## Use it in Java
add com.github.lzyzsd.jsbridge.BridgeWebView to your layout, it is inherited from WebView.
### Register a Java handler function so that js can call
```java
webView.registerHandler("submitFromWeb", new BridgeHandler() {
@Override
public void handler(String data, CallBackFunction function) {
Log.i(TAG, "handler = submitFromWeb, data from web = " + data);
function.onCallBack("submitFromWeb exe, response data from Java");
}
});
```
js can call this Java handler method "submitFromWeb" through:
```javascript
WebViewJavascriptBridge.callHandler(
'submitFromWeb'
, {'param': str1}
, function(responseData) {
document.getElementById("show").innerHTML = "send get responseData from java, data = " + responseData
}
);
```
You can set a default handler in Java, so that js can send message to Java without assigned handlerName
```java
webView.setDefaultHandler(new DefaultHandler());
```
```javascript
window.WebViewJavascriptBridge.send(
data
, function(responseData) {
document.getElementById("show").innerHTML = "repsonseData from java, data = " + responseData
}
);
```
### Register a JavaScript handler function so that Java can call
```javascript
WebViewJavascriptBridge.registerHandler("functionInJs", function(data, responseCallback) {
document.getElementById("show").innerHTML = ("data from Java: = " + data);
var responseData = "Javascript Says Right back aka!";
responseCallback(responseData);
});
```
Java can call this js handler function "functionInJs" through:
```java
webView.callHandler("functionInJs", new Gson().toJson(user), new CallBackFunction() {
@Override
public void onCallBack(String data) {
}
});
```
You can also define a default handler use init method, so that Java can send message to js without assigned handlerName
for example:
```javascript
bridge.init(function(message, responseCallback) {
console.log('JS got a message', message);
var data = {
'Javascript Responds': 'Wee!'
};
console.log('JS responding with', data);
responseCallback(data);
});
```
```java
webView.send("hello");
```
will print 'JS got a message hello' and 'JS responding with' in webview console.
## Notice
This lib will inject a WebViewJavascriptBridge Object to window object.
So in your js, before use WebViewJavascriptBridge, you must detect if WebViewJavascriptBridge exist.
If WebViewJavascriptBridge does not exit, you can listen to WebViewJavascriptBridgeReady event, as the blow code shows:
```javascript
if (window.WebViewJavascriptBridge) {
//do your work here
} else {
document.addEventListener(
'WebViewJavascriptBridgeReady'
, function() {
//do your work here
},
false
);
}
```
## License
This project is licensed under the terms of the MIT license.
没有合适的资源?快使用搜索试试~ 我知道了~
JsBridge demo及android与js交互
共815个文件
flat:490个
xml:136个
json:114个
需积分: 34 8 下载量 33 浏览量
2019-03-18
11:13:46
上传
评论
收藏 1.61MB ZIP 举报
温馨提示
jsBrigde demo实现js与android native交互,回掉等,实现快速开发
资源推荐
资源详情
资源评论
收起资源包目录
JsBridge demo及android与js交互 (815个子文件)
resources-debug.ap_ 483KB
gradlew.bat 2KB
fileSnapshots.bin 341KB
fileHashes.bin 129KB
taskHistory.bin 45KB
last-build.bin 1B
built.bin 0B
values_values.arsc.flat 205KB
values-v21_values-v21.arsc.flat 28KB
values-v11_values-v11.arsc.flat 16KB
mipmap-xxhdpi_ic_launcher.png.flat 8KB
mipmap-xhdpi_ic_launcher.png.flat 5KB
layout_abc_search_view.xml.flat 5KB
layout-v16_notification_template_custom_big.xml.flat 5KB
layout-v11_notification_template_big_media_narrow_custom.xml.flat 5KB
layout-v11_notification_template_big_media_custom.xml.flat 4KB
layout_notification_template_media_custom.xml.flat 4KB
values-v17_values-v17.arsc.flat 4KB
layout_notification_template_lines_media.xml.flat 4KB
values-my-rMM_values-my-rMM.arsc.flat 4KB
values-ne-rNP_values-ne-rNP.arsc.flat 4KB
layout-v21_notification_template_custom_big.xml.flat 4KB
values-bn-rBD_values-bn-rBD.arsc.flat 4KB
values-ml-rIN_values-ml-rIN.arsc.flat 4KB
values-kn-rIN_values-kn-rIN.arsc.flat 4KB
values-te-rIN_values-te-rIN.arsc.flat 4KB
mipmap-hdpi_ic_launcher.png.flat 4KB
layout_abc_alert_dialog_material.xml.flat 4KB
values-ta-rIN_values-ta-rIN.arsc.flat 3KB
values-ka-rGE_values-ka-rGE.arsc.flat 3KB
values-si-rLK_values-si-rLK.arsc.flat 3KB
values-hi_values-hi.arsc.flat 3KB
values-mr-rIN_values-mr-rIN.arsc.flat 3KB
values-km-rKH_values-km-rKH.arsc.flat 3KB
values-el_values-el.arsc.flat 3KB
values-gu-rIN_values-gu-rIN.arsc.flat 3KB
values-v14_values-v14.arsc.flat 3KB
values-th_values-th.arsc.flat 3KB
values-v23_values-v23.arsc.flat 3KB
values-bg_values-bg.arsc.flat 3KB
values-lo-rLA_values-lo-rLA.arsc.flat 3KB
values-pa-rIN_values-pa-rIN.arsc.flat 3KB
values-be-rBY_values-be-rBY.arsc.flat 3KB
values-ru_values-ru.arsc.flat 3KB
values-ur-rPK_values-ur-rPK.arsc.flat 3KB
values-fa_values-fa.arsc.flat 3KB
values-hy-rAM_values-hy-rAM.arsc.flat 3KB
values-sr_values-sr.arsc.flat 3KB
values-uk_values-uk.arsc.flat 3KB
values-ky-rKG_values-ky-rKG.arsc.flat 3KB
values-am_values-am.arsc.flat 3KB
values-mn-rMN_values-mn-rMN.arsc.flat 3KB
values-kk-rKZ_values-kk-rKZ.arsc.flat 3KB
values-ar_values-ar.arsc.flat 3KB
values-hu_values-hu.arsc.flat 3KB
values-fr-rCA_values-fr-rCA.arsc.flat 3KB
values-vi_values-vi.arsc.flat 3KB
values-ro_values-ro.arsc.flat 3KB
values-iw_values-iw.arsc.flat 3KB
values-lt_values-lt.arsc.flat 3KB
values-fr_values-fr.arsc.flat 3KB
values-lv_values-lv.arsc.flat 3KB
values-tl_values-tl.arsc.flat 3KB
values-eu-rES_values-eu-rES.arsc.flat 3KB
drawable-xxhdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat 3KB
values-pt-rPT_values-pt-rPT.arsc.flat 3KB
values-es-rUS_values-es-rUS.arsc.flat 3KB
values-pt-rBR_values-pt-rBR.arsc.flat 3KB
values-sq-rAL_values-sq-rAL.arsc.flat 3KB
values-ja_values-ja.arsc.flat 3KB
values-pt_values-pt.arsc.flat 3KB
values-uz-rUZ_values-uz-rUZ.arsc.flat 3KB
values-sk_values-sk.arsc.flat 3KB
values-hr_values-hr.arsc.flat 3KB
values-gl-rES_values-gl-rES.arsc.flat 3KB
values-bs-rBA_values-bs-rBA.arsc.flat 3KB
drawable-xxxhdpi-v4_abc_btn_switch_to_on_mtrl_00012.9.png.flat 3KB
values-pl_values-pl.arsc.flat 3KB
values-et-rEE_values-et-rEE.arsc.flat 3KB
values-ca_values-ca.arsc.flat 3KB
values-b+sr+Latn_values-b+sr+Latn.arsc.flat 3KB
values-cs_values-cs.arsc.flat 3KB
layout_notification_template_custom_big.xml.flat 3KB
values-nl_values-nl.arsc.flat 3KB
values-sl_values-sl.arsc.flat 3KB
values-es_values-es.arsc.flat 3KB
values-zu_values-zu.arsc.flat 3KB
values-ms-rMY_values-ms-rMY.arsc.flat 3KB
values-in_values-in.arsc.flat 3KB
values-zh-rTW_values-zh-rTW.arsc.flat 3KB
values-it_values-it.arsc.flat 3KB
values-ko_values-ko.arsc.flat 3KB
values-zh-rHK_values-zh-rHK.arsc.flat 3KB
values-zh-rCN_values-zh-rCN.arsc.flat 3KB
values-de_values-de.arsc.flat 3KB
values-sw_values-sw.arsc.flat 3KB
values-fi_values-fi.arsc.flat 3KB
values-tr_values-tr.arsc.flat 3KB
values-is-rIS_values-is-rIS.arsc.flat 3KB
values-da_values-da.arsc.flat 3KB
共 815 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
wwww5840
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功