ios开发dsbridge的使用 ios端代码

dsbridge在github上给出的文档已经很详细了但是就是有些地方没有解释明白,我这里对ios部分的方法做下解释

1.先pod进去dsBridge

pod "dsBridge"

2.然后官网给我解析就是开始创建一个JsApiTest类,但是没有说明这个类是干什么的,其实这个类中的方法都是js调用oc的方法。

#import "JsApiTest.h"
#import "dsbridge.h"

@implementation JsApiTest

- (NSString *)testSyn: (NSString *) msg
{
    return [msg stringByAppendingString:@"[ syn call]"];
}

- (void)testAsyn:(NSString *) msg :(JSCallback) completionHandler
{
    completionHandler([msg stringByAppendingString:@" [ asyn call]"],YES);
}

@end

3.然后开始在项目中创建wkwebview

DWKWebView * dwebview=[[DWKWebView alloc] initWithFrame:CGRectMake(0, 0, kScreenW, kScreenH-kIPHONEXNAVHEIGHT)];
    
    NSString *urlStr = @“”;
    NSMutableURLRequest *dealRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlStr]
                                                               cachePolicy:NSURLRequestReloadIgnoringCacheData
                                                           timeoutInterval:15.0];
    [dwebview loadRequest:dealRequest];
    
    
    
//    [dwebview addJavascriptObject:[[JsApiTest alloc] init] namespace:nil];
    [dwebview addJavascriptObject:self namespace:nil];
    [self.view addSubview:dwebview];
    [dwebview setDebugMode:true];

这里要说明的的如果你使用[dwebview addJavascriptObject:[[JsApiTest alloc] init] namespace:nil]这句来初始化DWKWebView的话,js调用你原生的方法都要写到你自己定义JsApiTest类中。如果你使用[dwebview addJavascriptObject:self namespace:nil];来初始化,那么你就不必要在创建JsApiTest类了,js调用你原生的回调方法直接在你的项目中当成直接的方法使用就行。

js调用原生方法以及注释

//testSyn是js调用原生的方法名称,msg是js给你传递的参数需要注意的是msg的类型不仅是NSString类型的,你可以改成自己需要的任何类型,msg参数你也可以自己定义成任何名字 同步异步方法都是这样

- (NSString *)testSyn: (NSString *) msg;

原生调用js方法

    [dwebview callHandler:@"addValue" arguments:@[@"12",@"3"] completionHandler:^(NSNumber* value){
        DLog(@"oc调用js回调%@",value);
    }];

这个方法没什么好说的,但是貌似只能给js端传递数组这种类型,不知道能不能传递其他类型的参数,比如我们这边要传递给后台的就是字典类型的参数,我们把字典转成字符串然后放到数组里面来实现了,不知道能不能直接传递,没做研究

DSBridge-IOS github:https://github.com/wendux/DSBridge-IOS

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值