0
回答
关于ReactNative中对于回调函数的使用,android和ios 跟js数据传递格式的疑问
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

ios中设置回调函数:

RCT_EXPORT_METHOD(getLoginState:(RCTResponseSenderBlock)callback){
    //这个events是集合,集合当中放了key值为isLogin的value值"0"。这样的数据格式
    NSDictionary *events = @{@"isLogin": "0"};
    callback(@[[NSNull null],events]);
}

js中的调用:

gotoBuy() {
        var bridge = NativeModules.CurrentDetailModule;
        bridge.getLoginState((events) => {//取的时候,这样的数据格式ios当中正常获取
                if (events["isLogin"] == '0') {
                    bridge.gotoLogin();
                } else {
                    bridge.gotoBuyProductPage(this.state.productId);
                }
        })
    }

Android之中设置回调函数:

@ReactMethod
public void getLoginState(Callback callback) {
    try {
        callback.invoke("0");//这里直接传的字符串,这样的数据格式简单,高效。
    } catch (IllegalViewOperationException e) {
    }
}

那么问题来了,在Js中,要区分平台去获取原生应用传递过来的数据么,还是在Android或者Ios中有其他数据格式的支持。

举报
Keyoumi
发帖于3个月前 0回/22阅
顶部