Integration
AcknowledgmentsĀ
- iOS: Appoxee plugin support iOS8 and above
Prerequisites
- NodeĀ andĀ PhoneGap CLIĀ installed on your mac.
- Cordova 5.0.0 and above
Appoxee Cordova plugin 1.5.0
Integration - Phase 1
- Download the plugin
Add the plugin with the following command:
cd Path/To/My/PhonegapProject cordova plugin add /path/to/location/of/plugin
Ā Ā Ā Ā OR,Ā indicate if AndroidĀ applications should open landing pages inside, or outside the application.
**** Do to Cordova way of working, it is recommended to keep the default setting of landing pages to open outside of the application. Using the non default configuration of opening landing pages inside the app will lead to cases where the landing page will not be rendered due to initialisation issues Ā ****
cd Path/To/My/PhonegapProject cordova plugin add /path/to/location/of/plugin --variable APX_OPEN_URL_INTERNAL='no'Ā /* pass 'no' or 'yes' when adding the plugin to indicate if on Android, landing pages should be opened inside or outside the application. */
Integration - Phase 2
Android - Initialize the plugin in your Javascript application, as soon as possible, by calling the following:
function engage() { AppoxeePlugin.engage("sdk.id", "app.secret", function (json) { alert(JSON.stringify(json)); }, function (json) { alert(JSON.stringify(json)); }); }
iOSĀ - No need to explicitly engage the plugin via your JavaScript code.
Locate AppoxeeConfig.plist onĀ the Cordova Xcode project file structure (File should be located under 'Resources' folder on 'Xcode's project navigator).
~/CORDOVA_PROJECT_NAME/APPLICATION_NAME/platforms/ios/XCODE_APP_NAME/Resources/AppoxeeConfig.plist
- Enter your SDK key.
- Choose the Appoxee environment to work against.
- Choose if landing pages open inside, or outside the application.
**** Do to Cordova way of working, it is recommended to keep the default setting of landing pages to open outside of the application. Using the non default configuration of opening landing pages inside the app will lead to cases where the landing page will not be rendered due to initialisation issues Ā ****
<?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>sdk</key> <dict> <key>sdk_key</key> <string>123456789.00</string> <key>is_eu</key> <!-- Optional, indicate if account is EU / US --> <false/> <key>open_landing_page_inside_app</key> <!-- Optional, indicate if landing page should open inside the app or via Safari --> <false/> </dict> </dict> </plist>
Note that iOS / Android applications will not share the same SDK key & secret, so you'll need to supply the right key for each platform, if you are compiling the same code for both platforms.
Content Security Policy & inline functions
In order to:
- run the engage() method in your HTML code
- enable iOS10 with cordova
make sure your meta tag of Content-Security-Policy contains the following definition (allowing inline function and code execution):
<meta http-equiv="Content-Security-Policy" content="default-src * gap://ready file:; style-src 'self' 'unsafe-inline' *; script-src 'self' 'unsafe-inline' 'unsafe-eval' *">
Android small iconĀ
In order to override the small icon in the notification bar, you'll have to create a drawable named "apx_small_icon" - place an image file with that name in the project's drawable folder(s) (eg: <project>/platforms/android/res/drawable-xhdpi )