ZLBridge是为iOS的WKWebview和JS数据交互时提供更简单方便的小工具组件

Overview

ZLBridge

CI Status Version License Platform

说明

ZLBridge是为iOS的WKWebview和JS数据交互时提供更简单方便的小工具组件,可配合H5端使用ZLBridge-JS库来数据交互,也可选择原生本地注入JS代码,H5无需任何集成操作。目前已支持的平台有
ZLBridge-iOS
ZLBridge-Android
ZLBridge-JS
ZLBridge-flutter
ZLBridge-RN

安装

pod 'ZLBridge' //如果安装失败,pod update更新一下

H5端window.zlbridge初始化

#import <ZLBridge/WKWebView+ZLBridge.h>

//YES:原生注入本地js脚本初始化zlbridge,NO:由H5初始化zlbridge
[self.wkwebView initBridgeWithLocalJS:YES];

H5初始化zlbridge

 //导入一次后也可以通过window.zlbridge拿zlbridge对象
 var zlbridge = require('zlbridge')

原生与JS交互

JS调用原生test事件

无参数

window.zlbridge.call('test',(arg) => {

});

有参数参数

{ }); ">
window.zlbridge.call('test',{key:"value"},(arg) => {

});

原生注册test事件

[self.wkwebView registHandler:@"test" completionHandler:^(id  _Nullable obj, JSCallbackHandler  _Nullable callback) {
    //YES代表JS只能监听一次回调结果,NO可以连续监听
    callback(@"js异步调用:这是原生返回的结果1000!",YES);
}];

原生调用js

原生调用JS的jsMethod事件

[self.wkwebView callHandler:@"jsMethod" arguments:@[@"这是原生调用js传的值"] completionHandler:^(id  _Nullable obj, NSError * _Nullable error) {
}];

js注册jsMethod事件

{ return arg; }); ">
window.zlbridge.register("jsMethod",(arg) => {
     return arg;
 });

或者

{ //ture代表原生只能监听一次回调结果,false可以连续监听,默认传为true callback(arg,true); }); ">
window.zlbridge.registerWithCallback("jsMethod",(arg,callback) => {
   //ture代表原生只能监听一次回调结果,false可以连续监听,默认传为true
    callback(arg,true);
 });

通过本地注入JS脚本的,H5可以监听ZLBridge初始化完成

document.addEventListener('ZLBridgeInitReady', function() {
    consloe.log('ZLBridge初始化完成');
},false);

移除ZLBridge

[self.wkwebView destroyBridge];

!!! iOS传给JS的值对象有NSNumber,NSString,NSDictionary,NSArray,NSSet

Author

范鹏, [email protected]

License

ZLBridge is available under the MIT license. See the LICENSE file for more info.

You might also like...
Releases(v1.0.1)
Owner
null