JSBridge 协议客户端实现
API
安装
<script src="https://jsbridgeprotocol.faas.ele.me/0.0.1.min.js"></script>
引入脚本之后,会在全局声明一个 bridgeProtocol 对象,通过这个对象的 inject 方法可以在全局注册上原来需要在 onload 的时候才注入的变量:
<script>if (typeof bridgeProtocol !== 'undefined') { bridgeProtocol.inject('EJsBridge', ['getGlobalGeohash', 'showShareButton', 'selectedHongbao', 'selectHongbao', 'selectCoupon', 'getLocateStatus', 'setTitle', 'closePage', 'getUserID']);}</script>
init
用来处理在尚未 ready 之前 Native 发送给 Browser 的消息,只能调用一次:
bridgeProtocol.init()
inject
bridgeProtocol.inject(objectName, methods)
向 window 中添加一个对象,对象名为 objectName,方法名为 methods。
比如,Element App 的 Hybrid API 应该这么处理:
bridgeProtocol.inject('EJsBridge', ['getGlobalGeohash', 'showShareButton', 'selectedHongbao', 'selectHongbao', 'selectCoupon', 'getLocateStatus', 'setTitle', 'closePage', 'getUserID']);
registerHandler
向 Native 注册一个方法,以供 Native 调用:
bridgeProtocol.registerHandler('functionInJs', function(data, callback) { document.getElementById('show').innerHTML = ('data from Java: = ' + data); callback('Javascript Says Right back aka!'); });