Tag: React Native模块

使用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)//这是我们的承诺 } … } […]