iOS DSBridge 原生与Js交互

DSBridge是比较好用的原生与JS交互跨平台的jsbridge,支持iOS、安卓。
git地址:
https://github.com/wendux/DSBridge-IOS
https://github.com/wendux/DSBridge-Android

iOS端用法简介

  • pod安装
pod "dsBridge"
  • 使用
    1、Implement APIs in a class
//JsApiTest.m 
@implementation JsApiTest
//for synchronous invocation  
- (NSString *)testSyn:(NSDictionary *)args
{
    return [(NSString *)[args valueForKey:@"msg"] stringByAppendingString:@"[ syn call]"];
}
//for asynchronous invocation
- (NSString *)testAsyn:(NSDictionary *)args result:(JSCallback)completionHandler
{
    completionHandler(@"asyn call", YES);
}
@end

创建JsApiTest类,只要在.m中实现与JS端协商好的方法即可,不需要在.h中声明。如

- (NSString *)testSyn:(NSDictionary *)args

2、add API object to DWKWebView

DWKWebView *dwebview = [[DWKWebView alloc] initWithFrame:bounds];
// register api object without namespace
[dwebview addJavascriptObject:[[JsApiTest alloc] init] namespace:nil];

namespace要与JS协商决定。

需要注意的地方 !!

JS端有弹框(alert/confirm/prompt)等,DSBridge中已经实现了WKUIDelegate代理方法中的代理,默认对话框标签文本语言为中文,您可以通过调用来自定义文本customJavascriptDialogLabelTitles。如果您仍然想自己实现它们,请设置作为DSUIDelegate 的代理的属性WKUIDelegate。

你可能感兴趣的:(iOS DSBridge 原生与Js交互)