文学漫画h5和native通信库
该项目包含h5和native通信库(schema和bridge实现)、文学漫画各个产品的通信协议文档和具体实现,并对老版本schema方式的通信做兼容,在 http://doc.hz.netease.com/pages/viewpage.action?pageId=80308439 了解jsbridge的细节
文档
文档使用apidoc生成。
apidoc -i src/ -o out/all/
apidoc -i src/lib/ -o out/lib/
apidoc -i src/snail -i src/lib/ -o out/snail/
apidoc -i src/comic -i src/lib/ -o out/comic/
apidoc -i src/read -o out/read/
apidoc -i src/lofter -o out/lofter/
使用
每个产品都有单独的入口文件
- 漫画在src/comic/comic.js
- 蜗牛在src/snail/snail.js
- Lofter在src/lofter/lofter.js
使用rollup构建
npm install
npm run build
npm version patch
npm publish
生成的文件在dist下,以漫画为例,bridge.comic.js是umd格式,如果通过script引入,命名空间为Bridge.comic,bridge.comic.es.js是module格式
Bridge.comic.callHandler;
Bridge.comic.registerHandler;
import {callHanlder, registerHandler} from 'nejsbridge/dist/bridge.comic.es.js';
API选项
callHandler h5主动跟客户端通信
Bridge.comic.callHandler(actionName, data, callback);
actionName – type: string. 接口名
data – type: object. 数据
callback – type: funtion. 回调函数,可选
registerHandler h5注册协议,客户端发起通信
Bridge.comic.callHandler(actionName, callback);
actionName – type: string. 接口名
callback – type: funtion. 回调函数
support 判断当前客户端是否支持该协议
Bridge.comic.support(actionName);
actionName – type: string. 接口名
返回值为Boolean,true表示支持,false表示不支持
新产品接入
准备工作
需要基于APIAbstract实现API接口说明
- schemaName_是产品的schema头
- isInApp判断是否在app里
- getLegacyProtocolConfig实现具体兼容老版本的协议
开始
- 定义产品所需的协议和文档
- 实现接口
- 处理好打包相关的内容
- 记得更新本readme哦
备注
- LOFTER客户端6.19.0客户端JSBridge SDK有更新,多次注册同一registerHandler协议将不再互相覆盖,而是会以数组形式储存,然后按照注册顺序一次触发。