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。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。