美文网首页
iOS DSBridge 原生与Js交互

iOS DSBridge 原生与Js交互

作者: Jessica124 | 来源:发表于2020-06-29 15:18 被阅读0次

    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交互

          本文链接:https://www.haomeiwen.com/subject/izbofktx.html