对新手友好的 RN 使用原生ios开发的模块

一、首先,我们需要知道我们做好的文件要放在哪里,需要做哪些配置才能生效

我们需要先有2个文件(1)CreatCat.h (2)CreatCat.m,随意在哪里创建,最好是放在项目的ios根目录下,比较好找

至于文件内写些什么,我们待会说,先说下有了文件后如何配置!

二、配图

这边是放在RN项目在Xcode上的项目根目录下,与其他库文件是同级的,只需要放在这里,并且在对应的文件里写些代码,就可以正确被JS调用了

CreatCat.h

#import <Foundation/Foundation.h>
#import "RCTBridgeModule.h"
 
@interface CreatCat : NSObject <RCTBridgeModule>
 
@end

CreatCat.m(这边我们创建了三个方法供RN调用)cratCat、addEvent、whoName

//
//  CreatCat.m
//  demo
//
//  Created by xieyusheng on 2017/11/10.
//  Copyright © 2017年 Facebook. All rights reserved.
//
 
#import <Foundation/Foundation.h>
#import "CreatCat.h"
 
@implementation CreatCat
 
RCT_EXPORT_MODULE();
 
RCT_EXPORT_METHOD(cratCat:(NSString *)name sex:(NSString *)sex age:(int)age)
{
  NSLog(@"我创建了一只名叫%@的猫,性别%@, 今年%d岁", name, sex, age);
}
 	
//对外提供调用方法
RCT_EXPORT_METHOD(addEvent:(NSString *)name location:(NSString *)location){
  NSLog(@"Pretending to create an event %@ at %@", name, location);
}
 
//方法3
RCT_EXPORT_METHOD(whoName:(NSString *)name age:(int)age location:(NSString *)location){
  NSLog(@"可以的%@,年来%d,还有%@",name,age,location);
}
 
@end

这边附上Object-C 函数定义 -- 笔记https://www.cnblogs.com/facial/p/4750814.html

在RN的调用则是

import { NativeModules } from 'react-native';
iosBridgeContactOnPress = () => {
    console.log('NativeModules====>', NativeModules)
    NativeModules.CreatCat && NativeModules.CreatCat.cratCat('小花猫', '母', 3)
};

OK 项目跑起来后,可以看到我们打印的原生IOS暴露给RN的类模块以及内部的方法

成功后 会在XCODE输出打印

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hzxOnlineOk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值