Skip to content

Commit c2ac6a3

Browse files
author
lemon
committed
更新文档,添加目前feature说明
1 parent d1e212a commit c2ac6a3

File tree

2 files changed

+48
-1
lines changed

2 files changed

+48
-1
lines changed

.idea/misc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,50 @@
1+
# FEATURE
2+
3+
#### :heavy_check_mark: JavaScript调用Java功能
4+
5+
**支持同步和异步两种方式的调用(目前仅开放异步调用,但实现原理本身支持同步调用)**
6+
7+
要使用这个功能,总共以下几个步骤:
8+
9+
1. 业务的JavaScript代码监听Bridge的注入完成事件`WebViewJavascriptBridgeReady`
10+
2. 使用步骤1注入的`easyBridge`对象(对象名字支持自定义)的`callHandler(handlerName, args, callback)`函数调用Java代码。
11+
12+
**请根据业务需要定义JavaScript与Java的通讯协议**
13+
14+
#### :heavy_check_mark: Java调用JavaScript功能
15+
16+
可以在Java代码中调用注册在EasyBridge上的JavaScript函数,步骤如下:
17+
18+
1. 业务的JavaScript代码监听Bridge的注入完成事件`WebViewJavascriptBridgeReady`
19+
2. 使用步骤1注入的`easyBridge`对象(对象名字支持自定义)的`registerHandler(handlerName, handler)`方法,注册可供Java调用的方法;
20+
3. 在Java层,调用EasyBridge的`EasyBridgeWebView`实例的`callHandler(handlerName,parameters,resultCallBack)`方法,JavaScript的执行结果会通过第三个参数回调返回。
21+
22+
**请根据业务需要定义JavaScript与Java的通讯协议**
23+
24+
#### :heavy_check_mark: 全局的安全控制策略
25+
26+
EasyBridge提供两种安全检查策略。其中全局的安全检查在EasyBridge的内部发生在以下两个时机:
27+
28+
* **Java注入Bridge通讯桥的时候.**
29+
30+
如果被安全检查禁止,则不会在页面中注入bridge对象,即无法访问Java中的方法
31+
32+
* **JavaScript调用具体的Java接口的时候.**
33+
34+
如果被安全检查禁止,则不会触发下面的接口粒度的安全检查也无法访问Java中的方法
35+
36+
要使用全局的安全控制策略,步骤如下:
37+
38+
1. 调用EasyBridge的`EasyBridgeWebView`实例的`setPolicyChecker(policyChecker)`方法设置全局安全检查对象实例;
39+
2. 需要在其他时机触发全局的安全检查请调用`checkSecurityGlobally(url,parameters)`方法
40+
41+
#### :heavy_check_mark: 基于接口粒度的安全控制策略
42+
43+
接口粒度的安全检查是在执行对应的Java方法之前的最后一个检查点。要使用接口粒度的安全检查,步骤如下:
44+
45+
1. 构造对应的`BridgeHandler`接口对象实例
46+
2. 实现对应的`SecurityPolicyChecker`实例,并提供给步骤1的接口实例
47+
148
# EasyBridge
249

350
[EasyBridge](https://github.com/easilycoder/EasyBridge)是一个简单易用的js-bridge的工具库,提供了日常开发中,JavaScript与Java之间通讯的能力,与其他常见的js-bridge工具库实现方案不同,**EasyBridge**具备以下几个特点:

0 commit comments

Comments
 (0)