4.3.0 • Published 2 months ago

expo-prizor-sdk v4.3.0

Weekly downloads
-
License
MIT
Repository
-
Last release
2 months ago

expo-prizor-sdk

iOS and Android Expo integration for Prizor SDK

Installation

npm install expo-prizor-sdk

iOS

XCode 14+ is recommended.

Open ios/Podfile and fill the requirements above:

  • Check to use frameworks
    use_frameworks!
  • Set minimum deployment target to 13.0
    platform :ios, '13.0'
  • Add private repository source
    source 'https://git-ext.crmall.com/cocoapods/specs.git'
  • Add public repository source
    source 'https://cdn.cocoapods.org/'
  • Run pod install at ios path

    $ pod install

Add NSAllowsLocalNetworking as true at Info.plist:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsLocalNetworking</key>
    <true/>
</dict>

Add NSAllowsArbitraryLoads, NSAllowsArbitraryLoadsInWebContent and io.flutter.embedded_views_preview as true at Info.plist:

<key>io.flutter.embedded_views_preview</key>
<true/>
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    <key>NSAllowsArbitraryLoadsInWebContent</key>
    <true/>
</dict>

Remove NSExceptionDomains from Info.plist:

<key>NSAppTransportSecurity</key>
<dict>
    <!-- <key>NSExceptionDomains</key>
    <dict>
        <key>localhost</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict> -->
</dict>

Android

Use minimum SDK version to 22 at project build.gradle:

minSdkVersion 22

Enable multiDexEnabled at application build.gradle:

android {
    defaultConfig {
        //...
        multiDexEnabled true
    }
}

Add Java 8 compatibility at application build.gradle:

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

Allow Prizor to request the opening of other apps on the user's device by adding the tag in the AndroidManifest.xml:

...
<queries>
    <package android:name="com.whatsapp" />
    <package android:name="com.whatsapp.w4b" />
    <intent>
        <action android:name="android.intent.action.VIEW" />
        <data android:scheme="https" />
    </intent>
    <intent>
        <action android:name="android.intent.action.DIAL" />
        <data android:scheme="tel" />
    </intent>
    <intent>
        <action android:name="android.intent.action.SEND" />
        <data android:mimeType="*/*" />
    </intent>
</queries>

Configure the Prizor's private maven repository:

  • 1st option: set the environment variables MAVEN_PRIZOR_USERNAME and MAVEN_PRIZOR_PASSWORD with the given credentials

  • 2nd option: replace the values of the entries username and password with the given credentials at build.gradle of the expo-prizor-sdk module:

repositories {
    maven {
        url "https://maven.prizor.com/"
        credentials {
            username System.getenv('MAVEN_PRIZOR_USERNAME') ?: "username"
            password System.getenv('MAVEN_PRIZOR_PASSWORD') ?: "password"
        }
    }
    maven {
        url 'https://storage.googleapis.com/download.flutter.io'
    }
}

Usage

import PrizorSdkModule from "expo-prizor-sdk";

// ...

PrizorSdkModule.startWithJson(params);

Start with Json

let params = (
      '{' +
      '   "environment":"production",' +
      '   "appId":"***",' +
      '   "secret":"***",' +
      // ...
      '}'
)
PrizorSdkModule.startWithJson(params);

Start with key value pairs

let params = {
      environment: 'production',
      appId: '***',
      secret: '***',
      // ...
}
PrizorSdkModule.startWithKeyValuePairs(params);

Close

PrizorSdkModule.close();

Useful commands

Creating a new application

npx react-native init AwesomeProject

Running the application

iOS

npx expo run:ios

Remember to check that Podfile was installed and its repos updated. Assert running pod install --repo-update at ios path.

Android

npx expo run:android

License

MIT

4.3.0

2 months ago

4.2.0

2 months ago

4.1.0

4 months ago

3.7.1

6 months ago

3.7.0

7 months ago

3.6.9

7 months ago

3.6.8

7 months ago

3.6.7

8 months ago

3.6.6

9 months ago

0.0.1

12 months ago

3.6.4

12 months ago