首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Reat Native调用OC本地方法, 代理方法不执行 更新

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类型参数只能是数组.
返回列表