Tag: 机模块

React Native-iOS的本机模块

플랫폼접근접근API접근이필요하고,React Native에는그에이없다。 包括Objective-C,Swfit和C ++的스또는로시다,이없지프로세싱,이데이스고성능,스멀티레드스다。 Native리가React Native가실제티브이티브다다。 이세。능세세세세세세만만만만만만만만。 React Native가필요한이티브기능을지원하지면다면,직접다한다。 이여주는티브이방법을。。 使用Objective_C的Swift,请使用Foundation UIKit。 在Xcode中下载Xcode。 在本机模块设置中查看。 的iOS日历API的照片。 在iOS日历上进行下载。 在RCTBridgeModule中开发了Objective-C应用程序。 서기서RCT궁금하다면,ReactCT의다。 RCTBridgeModule,在RCT_EXPORT_MODULE()中下载。 것은스자바이크립트가지이접근지정자세한다갖는(갖는)。 이름을지정하지않는다면,Objective-C름은스이름과다。 Objective-C的RCT的RCT升级,RCT的RCT的제것的下载。 响应本机통해로자바스통해CalendarManager노출하다이다。 RCT_EXPORT_METHOD的照片。 이제,자바스크립트로파일이와메서드를다。 注意:자바스크립트이메서드 자바스크립트로내보낸이콜론까콜론까지네이티브이메서드이다。 는React Native자바크립트크립트크립트름을하CT RCT_REMAP_METHOD()매크로를정의한다。 이것은네이네가콜론까지콜론까지자바스크립트이유용하유용하다。 CalenderMaanger的[CalendarManager新功能]对象-Objective-C로인스턴스화다。 无效的桥梁。 React Native桥接,回调,回调回调 (다음을)。 RCT_EXPORT_METHOD下载JSON和JSON지다。 字符串(NSString) 数字(NSInteger,浮点数,双精度,CGFloat,NSNumber) 布尔值(BOOL,NSNumber) 数组数组(NSArray) 字符串이목록의값값对象(NSDictionary) 功能(RCTResponseSenderBlock) 在RCTConvert中添加了RCTConvert。 RCTConver和JSON,以及本机Objective-C和Java。 CalendarManager,本地语言的한다。 를자바자바크립트크립트크립트크립트없어서를를를를를로로로로로。 本地음과다음과이작성할다。 。다음과이작성할다。 하지만기변환사능을,능을정용하면스。스있다。 。음음하나를용하여크립트에서크립트에서크립트에서호출한호출한호출한호출한。 또는 本地NSDate로변환된다。 数组같사용할경우경우이경우“ RedBox”메시지를다。 […]

使用Swift在React-Native中基于Promise的本机模块

我们已经知道并熟悉Javascript Promise❤但是,如果我们要构建本机模块并实现Promise,那又如何呢? 是的,您认为这很容易,您所需要的只是进入官方文档页面,并阅读“如何迅速编写承诺以响应本地需求”,对吗? 伙计,别那么容易,相信我spent我花了很多时间来创建正确的承诺,从Objective-C和Swift过渡到从桥梁过渡到React-Native。 好的,首先,您需要使用react-native init创建一个exampleApp 。 现在,转到exampleApp内的/ ios /文件夹,然后 打开exampleApp.xcodeproj Xcode打开时,在集成目录中创建两个文件: ExamplePromise.m和ExamplePromise.swift,当您创建swift文件时,Xcode将要求创建桥文件,单击“是”以使用以下名称创建它: ExamplePromise-Bridging-Header.h 这是我们的魔术方法RCT_EXTERN_MODULE和RCT_EXTERN_METHOD:(RCT表示ReaCT) // ExamplePromise.m #import @interface RCT_EXTERN_MODULE(ExamplePromise,NSObject) RCT_EXTERN_METHOD(getMyPromise: (RCTPromiseResolveBlock)解决 拒绝者:(RCTPromiseRejectBlock)拒绝 ) @结束 我们的快速文件: // ExamplePromise.swift 进口基金会 @objc(ExamplePromise) 类ExamplePromise:NSObject { @objc(getMyPromise:拒绝者:) func getMyPromise(_ resolve:RCTPromiseResolveBlock,拒绝者拒绝:RCTPromiseRejectBlock)->无效{ 解决(真) } } 和ExamplePromise-Bridging-Header.h #import 现在,打开您的App.js文件并登录到控制台,例如: 从’react-native’导入{NativeModules}; … 导出默认类App扩展Component { … componentDidMount(){ 让myModule = NativeModules.ExamplePromise; console.log(myModule.getMyPromise)//这是我们的承诺 } … } […]