美文网首页
RN与OC交互

RN与OC交互

作者: All_Be_Alright | 来源:发表于2021-08-12 18:18 被阅读0次

一、RN调用OC

  • OC部分:新建一个继承NSObject的类RNHelper,导入React/RCTBridgeModule.h头文件,并遵循RCTBridgeModule协议。

RNHelper.h

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface RNHelper : NSObject

@end

NS_ASSUME_NONNULL_END

RNHelper.m

#import "RNHelper.h"
#import <React/RCTBridgeModule.h>

@interface RNHelper () <RCTBridgeModule>

@end

@implementation RNHelper

RCT_EXPORT_MODULE();

RCT_EXPORT_METHOD(getVersion:(RCTResponseSenderBlock)callback) {
    NSDictionary * infoDict = [[NSBundle mainBundle] infoDictionary];
        
    NSString * appCurVersion = [infoDict objectForKey:@"CFBundleShortVersionString"];

    callback(@[[NSNull null], appCurVersion]);
}
  • JS部分:导入头文件,生命一个全局变量
import { NativeModules } from 'react-native';

var helper = NativeModules.RNHelper;

在来一个按钮

<TouchableOpacity onPress={this.onPage.bind(this)}>
              <Button
                  style={{fontSize: 20, color: 'green'}}
                  styleDisabled={{color: 'red'}}
                  onPress={() => this.onPage()}
                  title="RN调用OC"
              >
                  Press Me
              </Button>
          </TouchableOpacity>

点击事件

onPage(){
        helper.getVersion((error, callback) => {
            if (callback) {
                alert(callback);
            }
            
        });
    }

相关文章

网友评论

      本文标题:RN与OC交互

      本文链接:https://www.haomeiwen.com/subject/zyolbltx.html