Weex Module Callback 的用法

更新日期: 2017-07-24 阅读次数: 6150 分类: weex

Module 支持返回值给 JavaScript中的回调,回调的类型是WXModuleCallback,回调的参数可以是String或者Map

@implementation WXEventModule
@synthesize weexInstance;
   WX_EXPORT_METHOD(@selector(openURL:callback))
- (void)openURL:(NSString *)url callback:(WXModuleCallback)callback
{
    NSString *newURL = url;
    if ([url hasPrefix:@"//"]) {
        newURL = [NSString stringWithFormat:@"http:%@", url];
    } else if (![url hasPrefix:@"http"]) {
       newURL = [NSURL URLWithString:url relativeToURL:weexInstance.scriptURL].absoluteString;
    }

    UIViewController *controller = [[WXDemoViewController alloc] init];
    ((WXDemoViewController *)controller).url = [NSURL URLWithString:newURL];

    [[weexInstance.viewController navigationController] pushViewController:controller animated:YES];
    callback(@{@"result":@"success"});
}

@end

可见,callback 顾名思义就是传入了一个回调函数。

如果我想在这个封装的 Module 里其他函数中使用这个 callback,只需要将

self.callback = callback

self.callback 需要在 header 中定义

@property(nonatomic,copy)WXModuleCallback callback;

在 Weex 中的使用方法

module.doSomething(rsp => {
	this.value = rsp
})

如果包含其他参数,则为

module.doSomething('value1',function(rsp) {   
      this.value = rsp
  });

关于作者

我是来自山东烟台的一名开发者,喜欢瞎折腾,顺便记记笔记。有敢兴趣的话题,欢迎加微信 zhongwei 聊聊。 白天工地搬砖,晚上哄熊孩子,可能回复有点慢,见谅。 查看更多联系方式

相关文章

爱评论不评论

近期节日

2019年12月20日 澳门回归日
2019年12月21日 国际篮球日
2019年12月22日 冬至
2019年12月24日 平安夜
2019年12月25日 圣诞节
查看更多节日