Board logo

标题: Reat Native调用OC本地方法, 代理方法不执行 更新 [打印本页]

作者: look_w    时间: 2019-3-4 18:38     标题: Reat Native调用OC本地方法, 代理方法不执行 更新

附录

顺带附上今天查资料,关于RN调用OC方法的几个点:
相关配置

1.头文件和协议

    #import <React/RCTBridgeModule.h>//导入头文件
     
    @interface DEVPNManager : NSObject<RCTBridgeModule>//遵守协议
     
     
    //.m文件
    @implementation DEVPNManager
    RCT_EXPORT_MODULE();//导出的模块名,如果()内不写,则为类名.
     

    方法定义.

    方法的返回值只能是void
    异步方法,还是用回调用
    我怕生命周期有问题,将对象设置成了单例

    /**
     使用IP地址和端口号初始化VPN
     @param ipAddress IP地址 (字符串类型) 例如:114.255.251.193
     @param port 端口号 (字符串类型) 例如 443
     @param callback 结果回调
     */
     
    RCT_EXPORT_METHOD(initWithIPAddressNSString *)ipAddress portNSString*)port callbackRCTResponseSenderBlock)callback){
        /*
        your code
        */
        self.callBack = callback;
    }
     
    //somewhere 参数是数组
    self.callBack(@[@"RESULT_VPN_INIT_SUCCESS",@"初始化VPN成功"]);

RN 端使用.

    var VPNManager = NativeModules.DEVPNManager; //导入模块
     
    //某个触发事件
     VPNManager.initWithIPAddress('114.255.251.193','443',(status,description)=>{
                 AlertIOS.alert(status,description);
                if (status=='RESULT_VPN_INIT_SUCCESS'){
     
                 }
            });
     

参数依次传递, Block类型参数只能是数组.




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0