Acknowledgments 


Prerequisites

Required React and ReactNative versions

"react": "18.2.0"
"react-native": "0.73.4"

Installation 

Integration

Android Manually integration for the old versions

  1. Open up `android/app/src/main/java/[...]/MainActivity.java`

2. Append the following lines to `android/settings.gradle`:

    include ':react-native-mapp-plugin'

    project(':react-native-mapp-plugin').projectDir = new File(rootProject.projectDir,  '../node_modules/react-native-mapp-plugin/android')

 3. Insert the following lines inside the dependencies block in `android/app/build.gradle`:

       compile project(':react-native-mapp-plugin')

Android Setup:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /

iOS

1) Install pods

cd ios && pod install

this should install automatically pod

2) Add the following capabilities for your application target:

- Push Notification

- Background Modes > Remote Notifications

- Background Modes > Location updates

3) Create a plist `AppoxeeConfig.plist` and include it in your application’s target:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>inapp</key>
    <dict>
        <key>custom_fields</key>
        <array>
            <string>customString</string>
            <string>customNumber</string>
            <string>customDate</string>
        </array>
        <key>media_timeout</key>
        <integer>5</integer>
    </dict>
    <key>sdk</key>
    <dict>
        <key>app_id</key>
        <string>your app id</string>
        <key>dmc_system_id</key>
        <integer>your dmc id</integer>
        <key>sdk_key</key>
        <string>your sdk key</string>
        <key>is_eu</key>
        <true/>
        <key>open_landing_page_inside_app</key>
        <false/>
        <key>jamie_url</key>
        <string>your inapp server url</string>
        <key>apx_open_url_internal</key>
        <string>YES</string>
    </dict>
</dict>
</plist>

4) If using Rich notifications follow instructions from:

Rich Push Notifications Integration for iOS

5)In order to execute action from buttons or message body the following code needs to be added at AppDelegate file:

#import <RNMappPlugin/RNMappEventEmmiter.h>

// Explicitly define remote notification delegates to ensure compatibility with some third-party libraries

(

void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler

{

  [[Appoxee shared] didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler andNotifyCompletionWithBlock:^(NSError * _Nullable appoxeeError, id  _Nullable data) {

    

  }];

  return [super application:application didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler];

}