react-native
देशी मॉड्यूल
खोज…
अपना मूल मॉड्यूल बनाएं (IOS)
परिचय
http://facebook.github.io/react-native/docs/native-modules-ios.html से
कभी-कभी किसी ऐप को प्लेटफॉर्म एपीआई तक पहुंच की आवश्यकता होती है, और रिएक्ट नेटिव के पास अभी तक एक मॉड्यूल नहीं है। हो सकता है कि आप जावास्क्रिप्ट में इसे फिर से लागू किए बिना कुछ मौजूदा ऑब्जेक्टिव-सी, स्विफ्ट या सी ++ कोड का पुन: उपयोग करना चाहते हों, या कुछ उच्च प्रदर्शन, मल्टी-थ्रेडेड कोड जैसे कि इमेज प्रोसेसिंग, एक डेटाबेस या किसी भी उन्नत एक्सटेंशन को लिखना चाहते हों।
एक मूल मॉड्यूल बस एक ऑब्जेक्टिव-सी क्लास है जो RCTBridgeModule
प्रोटोकॉल को लागू करता है।
उदाहरण
अपने Xcode प्रोजेक्ट में एक नई फ़ाइल बनाएं और कोको टच क्लास का चयन करें , निर्माण विज़ार्ड में अपनी कक्षा के लिए एक नाम चुनें ( जैसे NativeModule ), इसे इसका उपवर्ग बनाएं: NSObject
और भाषा के लिए Objective-C
चुनें।
इससे NativeModuleEx.h
और NativeModuleEx.m
दो फाइलें NativeModuleEx.h
NativeModuleEx.m
आप आयात करने की आवश्यकता होगी RCTBridgeModule.h
अपने को NativeModuleEx.h
फ़ाइल के रूप में इस प्रकार है:
#import <Foundation/Foundation.h>
#import "RCTBridgeModule.h"
@interface NativeModuleEx : NSObject <RCTBridgeModule>
@end
अपने NativeModuleEx.m
में निम्नलिखित कोड जोड़ें:
#import "NativeModuleEx.h"
@implementation NativeModuleEx
RCT_EXPORT_MODULE();
RCT_EXPORT_METHOD(testModule:(NSString *)string )
{
NSLog(@"The string '%@' comes from JavaScript! ", string);
}
@end
RCT_EXPORT_MODULE()
जावास्क्रिप्ट में आपके मॉड्यूल को सुलभ बनाएगा, आप इसका नाम निर्दिष्ट करने के लिए इसे एक वैकल्पिक तर्क दे सकते हैं। यदि कोई नाम नहीं दिया गया है तो यह ऑब्जेक्टिव-सी श्रेणी के नाम से मेल खाएगा।
RCT_EXPORT_METHOD()
जावास्क्रिप्ट के लिए आपकी विधि का खुलासा करेगा, केवल इस मैक्रो का उपयोग करके आपके द्वारा निर्यात की जाने वाली विधियाँ जावास्क्रिप्ट में सुलभ होंगी।
अंत में, अपने जावास्क्रिप्ट में आप अपनी विधि को इस प्रकार कह सकते हैं:
import { NativeModules } from 'react-native';
var NativeModuleEx = NativeModules.NativeModuleEx;
NativeModuleEx.testModule('Some String !');