1 | #import "RNStoreReview.h"
|
2 | #import <StoreKit/SKStoreReviewController.h>
|
3 |
|
4 | #ifdef RCT_NEW_ARCH_ENABLED
|
5 | #import <RNStoreReviewSpec/RNStoreReviewSpec.h>
|
6 | #endif
|
7 |
|
8 | @implementation RNStoreReview
|
9 |
|
10 | - (dispatch_queue_t)methodQueue
|
11 | {
|
12 | return dispatch_get_main_queue();
|
13 | }
|
14 |
|
15 | RCT_EXPORT_MODULE()
|
16 |
|
17 | RCT_EXPORT_METHOD(requestReview)
|
18 | {
|
19 | if (@available(iOS 14.0, *)) {
|
20 | UIWindowScene *activeScene;
|
21 | NSSet *scenes = [[UIApplication sharedApplication] connectedScenes];
|
22 | for (UIScene *scene in scenes) {
|
23 | if ([scene activationState] == UISceneActivationStateForegroundActive) {
|
24 | activeScene = scene;
|
25 | break;
|
26 | }
|
27 | }
|
28 | if (activeScene != nil) {
|
29 | [SKStoreReviewController requestReviewInScene:activeScene];
|
30 | }
|
31 | } else {
|
32 | [SKStoreReviewController requestReview];
|
33 | }
|
34 | }
|
35 |
|
36 | #ifdef RCT_NEW_ARCH_ENABLED
|
37 | - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const facebook::react::ObjCTurboModule::InitParams &)params
|
38 | {
|
39 | return std::make_shared<facebook::react::NativeRNStoreReviewSpecJSI>(params);
|
40 | }
|
41 | #endif
|
42 |
|
43 | @end
|