Skip to content

针对ios和安卓的webViewJavascriptBridge的上层封装

Notifications You must be signed in to change notification settings

Liqihan/js-bridge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

js-bridge

之前公司一直没有这块的相关文档,只能自己和客户端同学一起研究,终于统一了一个基本的方案。 此方案是用于和原生ios和安卓交互的,但是毕竟ios和android实现的方法有所不同,故写了这个来封装了两者,借鉴了很多公司的设计思想,如微信等,目前只是初步的版本,基本实现了和客户端的通信,后续会继续迭代的。

原生的客户端方法 iOS 用到的开源方案:https://github.com/marcuswestin/WebViewJavascriptBridge Android 用到的开源方案:https://github.com/lzyzsd/JsBridge 微信JS

核心方法

bridge的初始化

    $JsBridge.$BG.ready(function(bridge){
        // TODO
    })

调用本地方法,是对WebViewJavascriptBridge.callHandle的封装

    $JsBridge.$BG.callNative(methodName, param, callback)

注册方法供app调用

    $JsBridge.$BG.registerHandler(methodName, callback)

使用方法

js调用客户端,客户端需要先实现checkJsApi方法,来检验调用的方法是否存在于app内,由于app发版,会不断有新的方法增加或删除,用checkJsApi先来判断调用的方法是否存在。 checkJsApi方法接受一个数组,返回对应的boolean值

    /**
        * 调用APP方法,options包含下面配置
        * @param  {[type]} method  方法
        * @param  {[type]} params 参数
        * @param  {[type]} success 成功回调
        * @param  {[type]} error   失败回调
        * @return {[type]}
        */
    $JsBridge.callAPP(method,{}, function(response){
        <!--成功之后的方法-->
    }, function(err) {
        alert(err);
    })

客户端调用js

    $JsBridge.registerAPP(funName, $localMethod[funName]);

具体安卓注入的js代码可见WebViewJavascriptBridgeFromAndroid;ios下可以见WebViewJavascriptBridgeFromOC

About

针对ios和安卓的webViewJavascriptBridge的上层封装

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published