From 9d19173eb963e19bd12f4e68bae85ffc540fd713 Mon Sep 17 00:00:00 2001 From: Mike Date: Wed, 17 Feb 2021 13:12:01 +0800 Subject: [PATCH] feature: implement initialize sdk --- .../reactnative/androidsdk/FBSettingsModule.java | 9 +++++++++ example/index.js | 11 ++++++++++- ios/RCTFBSDK/core/RCTFBSDKSettings.m | 5 +++++ src/FBSettings.js | 6 ++++++ 4 files changed, 30 insertions(+), 1 deletion(-) diff --git a/android/src/main/java/com/facebook/reactnative/androidsdk/FBSettingsModule.java b/android/src/main/java/com/facebook/reactnative/androidsdk/FBSettingsModule.java index b33d4bd5..f86d4738 100644 --- a/android/src/main/java/com/facebook/reactnative/androidsdk/FBSettingsModule.java +++ b/android/src/main/java/com/facebook/reactnative/androidsdk/FBSettingsModule.java @@ -49,4 +49,13 @@ public void setDataProcessingOptions(@Nullable String[] options) { public static void setDataProcessingOptionsExtra(@Nullable String[] options, int country, int state) { FacebookSdk.setDataProcessingOptions(options, country, state); } + + /** + * Initialize the sdk + * [FB SDK Best Practices for GDPR Compliance](https://developers.facebook.com/docs/app-events/gdpr-compliance/) + */ + @ReactMethod + public static void initializeSDK() { + FacebookSdk.fullyInitialize(); + } } diff --git a/example/index.js b/example/index.js index 69303b34..2c5323fc 100644 --- a/example/index.js +++ b/example/index.js @@ -2,8 +2,17 @@ * @format */ -import {AppRegistry} from 'react-native'; +import {AppRegistry, Platform} from 'react-native'; import App from './src/App'; import {name as appName} from './app.json'; +import {Settings} from 'react-native-fbsdk'; + +/** + * The `autoInitEnabled` option is removed from facebook-ios-sdk, should initialize manually + * See https://github.com/facebook/facebook-ios-sdk/blob/master/CHANGELOG.md#removed + */ +if(Platform.OS === 'ios'){ + Settings.initializeSDK(); +} AppRegistry.registerComponent(appName, () => App); diff --git a/ios/RCTFBSDK/core/RCTFBSDKSettings.m b/ios/RCTFBSDK/core/RCTFBSDKSettings.m index 3f55ac81..5dfb183b 100644 --- a/ios/RCTFBSDK/core/RCTFBSDKSettings.m +++ b/ios/RCTFBSDK/core/RCTFBSDKSettings.m @@ -43,4 +43,9 @@ - (dispatch_queue_t)methodQueue [FBSDKSettings setDataProcessingOptions:options country:country state:state]; } +RCT_EXPORT_METHOD(initializeSDK) +{ + [FBSDKApplicationDelegate initializeSDK:nil]; +} + @end diff --git a/src/FBSettings.js b/src/FBSettings.js index 257b0f58..8368f3a3 100644 --- a/src/FBSettings.js +++ b/src/FBSettings.js @@ -52,4 +52,10 @@ module.exports = { } Settings.setDataProcessingOptions(options, country, state); }, + /** + * Initialize the sdk + */ + initializeSDK() { + Settings.initializeSDK(); + }, };