weex与原生信息交互

                                    Weex与原生交互

一、获取静态的原生信息

JS code:

var userID = weex.config.userID;

在初始化加载weex模块前,可以确定并固定的信息可在js里用 weex.config.XXX 获取,

例如获取设备ID(deviceID)、用户ID(userID)等,需要事先告知原生程序员

详见官方文档“JSEnv扩展https://weex.apache.org/zh/guide/extend/extend-ios.html#jsenv-%E6%89%A9%E5%B1%95

 

二、获取动态的原生信息

以下所有模块名、函数名、参数类型、返回类型都需要事先与原生程序员确定。不支持多个参数及多个返回结果。

详见官方文档 “自定义 module

https://weex.apache.org/zh/guide/extend/extend-ios.html#%E8%87%AA%E5%AE%9A%E4%B9%89-module

 

1. 通过回调异步获取

JS code:

function additionResult(ret){

            console.log(">>>>>>>" + ret);

       }

weex.requireModule("mathOC").addition(["3","5"],additionResult);

 

或者简写为:

weex.requireModule("mathOC").addition(["3","5"],function(ret){

            console.log(">>>>>>>"+ret);

       });

 

 

其中,

mathOC为原生类,additionmathOC里的函数;

["3","5"] addition函数传给原生的参数,类型可以是数字、字符串、数组、字典;

function additionResult(ret) 为结果回调,其中的ret为结果,类型可以是数字、字符串、数组、字典;

 

 

 

2. 同步直接获取

JS code:

var result = weex.requireModule("mathOC").addition_sync(["3","5"]);

console.log(">>>>>>>" + result);

 

其中,

mathOC为原生类,addition_syncmathOC里的函数;

["3","5"] addition函数传给原生的参数,类型可以是数字、字符串、数组、字典;

result 可以为结果,类型可以是数字、字符串、数组、字典;

 

 

 

 

 

 

 

 

以下为iOS Object-C程序员的工作,JS程序员无需理会。

1. 给weex 初始化静态原生信息

WXSDKInstance * instance = [[WXSDKInstance alloc] init];

[instance renderWithURL:URL options:@{@"userID":userID} data:nil];

 

2. weex调用原生函数并异步获取结果

继承NSObject并遵循WXModuleProtocol协议

在@implementatin 内部

@synthesize weexInstance;

WX_EXPORT_METHOD(@selector(addition:result:)); // 向weex 声明方法

/// 原生实现函数

- (void)addition:(NSArray *)param result:(WXModuleCallback)callback { 

    callback(param[0]+param[1]);

}

 

 

3. weex调用原生函数并同步获取结果

继承NSObject并遵循WXModuleProtocol协议

在@implementatin 内部

@synthesize weexInstance;

WX_EXPORT_METHOD_SYNC(@selector(addition_sync:)); // 向weex 声明同步方法

/// 原生实现函数

- (NSString *)addition_sync:(NSArray *)param { 

    return (param[0]+param[1]);

}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值