RN与OC交互

2021-08-12  本文已影响0人  All_Be_Alright

一、RN调用OC

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]);
}
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);
            }
            
        });
    }
上一篇 下一篇

猜你喜欢

热点阅读