In order to use the SDK, a NativeModule needs to be created for Anrdoid and iOS.
To setup your RN environment follow this guide:
https://reactnative.dev/docs/environment-setup
This is an example git repository with the required NativeModule:
https://github.com/Mysize/react_native_mysize_sdk
iOS
For iOS it's needed to export some methods part of the module. In this example the module name is MySizeSDKBodyUI:
@objc(MySizeSDKBodyUI)
class MySizeSDKBodyUI: NSObject {
@objc
func configure(with key: String, secret: String) {
DispatchQueue.main.async {
MySizeIdSDK.sharedInstance().initialize(withKey: key, andSecret: secret)
}
}
@objc
func startUI(for userId: String) {
DispatchQueue.main.async {
MySizeIdSDK.sharedInstance().setCompletionScreen(nil)
MySizeIdSDK.sharedInstance().startUI(fromParentViewController: SOME_VC, userID: SOME_USER_ID)
}
}
}
Notice it's mandatory to call them on the Main thread
To import MySizeIdSDK, it's needed to create a bridging header and add:
#import <React/RCTBridgeModule.h>
#import <React/RCTViewManager.h>
#import <MySizeIDSDKBodyUI/MySizeIdSDK.h>
Android:
It's needed to export these methods from the NativeModule, in this example the same module name is used like in iOS "MySizeSDKBodyUI":
@ReactModule(name = MySizeSDKBodyUIRNModule.NAME) public class MySizeSDKBodyUIRNModule extends ReactContextBaseJavaModule { public static final String NAME = "MySizeSDKBodyUI"; public MySizeSDKBodyUIRNModule(ReactApplicationContext reactContext) { super(reactContext); } @Override @NonNull public String getName() { return NAME; } @ReactMethod public void configureWith(String key, String secret) { MySizeIDSDK.getInstance().initialize(getCurrentActivity(), key, secret); } @ReactMethod public void startUIFor(String userId) { MySizeIDSDK.getInstance().start(getCurrentActivity(), userId); } }
public class MySizeSDKBodyUIRNPackage implements ReactPackage {
@NonNull
@Override
public List<NativeModule> createNativeModules(@NonNull ReactApplicationContext reactContext) {
List<NativeModule> modules = new ArrayList<>();
modules.add(new MySizeSDKBodyUIRNModule(reactContext));
return modules;
}
@NonNull
@Override
public List<ViewManager> createViewManagers(@NonNull ReactApplicationContext reactContext) {
return Collections.emptyList();
}
}
In your gradle file, import the MySizeIDSDK:
implementation 'com.mysize:mysizeidsdk-core:2.2.0@aar' implementation 'com.mysize:mysizeidsdk-body:2.2.0@aar' implementation 'com.mysize:mysizeidsdk-ui:2.2.0@aar' implementation 'com.mysize:mysizeidsdk-videos:2.2.0@aar'
Comments
0 comments
Article is closed for comments.