capptain-cordova v1.0.2
#Cordova plugin for Capptain
Introduction
This plugin integrates the Capptain SDK into your Cordova/PhoneGap Application. It supports both reporting and push features.
Please refer to the Capptain SDK for more information about the various Capptain concepts.
Supported Platforms
- iOS
- Android
Installation
To install the plugin, just add it to your Cordova project using your proper Capptain credentials through Cordova variables.
cd <your project>
cordova plugin add <capptain plugin directory> --variable KEY=<value>Generic Variables
$CAPPTAIN_ENABLE_LOG:true|false, enable both plugin and capptain native logs$CAPPTAIN_REDIRECT_URL: the url schemes of your application when using redirect actions in your campaign. Must be the url prefix without :// (ex:myappto handle urls such asmyapp://shop)
iOS Variables
$CAPPTAIN_IOS_APP_ID: the Capptain ID of your iOS application$CAPPTAIN_IOS_SDK_KEY: the Capptain sdk key$CAPPTAIN_IOS_REACH_ICON: the icon used for reach notification : must be the name of the resource with its extension (ex:icon.png)
Android Variables
$CAPPTAIN_ANDROID_APP_ID: the Capptain ID of your Android application$CAPPTAIN_ANDROID_REACH_ICON: the icon used for reach notification : must be the name of the resource without any extension, nor drawable prefix (ex:icon)$CAPPTAIN_GOOGLE_PROJECT_NUMBER: the project number used as the GCM (Google Cloud Messaging) sender ID
To remove the plugin,
cordova plugin rm cordova-plugin-ms-capptainMethods
Once the deviceready event has been triggered by the Cordova framework, a Capptain object is available to interact with the native Capptain SDK.
- Capptain.startActivity
- Capptain.endActivity
- Capptain.sendAppInfo
- Capptain.startJob
- Capptain.endJob
- Capptain.sendEvent
- Capptain.onOpenURL
- Capptain.registerForRemoteNotification
- Capptain.getStatus
###Capptain.startActivity
Start a new activty with the corresponding extra infos object.
Capptain.startActivity(_activityName, _extraInfos,[ _success], [_failure]);#####Params
_activityName: the name of the activity_extraInfos: a json object containing the extra infos attached to this activity
###Capptain.endActivity Ends the current Actvity. Would trigger a new session on the next startActivity
Capptain.endActivity([ _success], [_failure]);###Capptain.sendEvent Send an event with the corresponding extra infos object.
sendEvent(_eventName, _extraInfos,[ _success], [_failure]);#####Params
_eventName: the name of the event_extraInfos: a json object containing the extra infos attached to this event
###Capptain.startJob Start an new job with the corresponding extra infos object.
Capptain.startJob(_jobName, _extraInfos,[ _success], [_failure]);#####Params
_jobName: the name of the job_extraInfos: a json object containing the extra infos attached to this job
###Capptain.endJob End a job previously created by startJob
Capptain.endJob(_jobName,[ _success], [_failure]);#####Params
_jobName: the name of the job
###Capptain.sendAppInfo Send App Infos atttached to the currente device.
Capptain.sendAppInfo( _appInfos,[ _success], [_failure]);#####Params
_appInfos: the json object containing the app infos to be sent
###Capptain.onOpenURL
Set an event handler when an application specific URL is triggered (from a push campaign for example). The URL scheme must match the one defined in the redirect_url setting
Capptain.onOpenURL( _urlHandler,[ _success], [_failure]);#####Params
_urlHandler: the handler that is passed the url that has been triggerd
#####Example
Capptain.onOpenURL(function(_url) {
console.log("user triggered url/action "+_url);
});###Capptain.registerForPushNotification Register the application to receive push notifications on iOS (this function does nothing on the other platforms)
Capptain.registerForPushNotification( [_success], [_failure]);###Capptain.getStatus Returns information about the Capptain library
Capptain.getStatus( _statusCallback, [_failure]);#####Params
_statusCallback: the handler that is passed a json object containing information about the Capptain library
#####Example
Capptain.getStatus(function(_info) {
console.log("Capptain SDK Version : "+_info.capptainVersion);
console.log("Capptain plugin Version : "+_info.pluginVersion);
});Running the sample Application
To easily play around with the plugin, a sample application (w/ unit testing) is available in the sample folder.
MAC OS/X
- Edit setup.sh with your own credentials
export CAPPTAIN_IOS_APP_ID=<APP_ID_IOS>
export CAPPTAIN_IOS_SDK_KEY=<SDK_KEY>
export CAPPTAIN_ANDROID_APP_ID=<APP_ID_ANDROID>
export CAPPRAIN_ANDROID_GOOGLE_PROJECT_NUMBER=<GOOGLE_PROJECT_NUMBER>- Create the sample project by launching setup.sh
sh setup.sh- Go to the directory where the app has been created
cd ~/CapptainCordova- Launch one of the following command
cordova run android
cordova emulate ios
cordova run ios deviceWindows
The process is similar, just edit/run the setup.batfile. Obviously, only the Android platform is supported on Windows.
Advance Testing
Campaign
In-App campaign should work directly, and redirection can be tested by using action URL beginning with "mytest://"
Native Push Testing
Native notification requires some additional configuration of your Capptain app (cf. the Capptain Documentation for reference)
- Import a Native Push Certificate into your Capptain console (iOS)
- Set the Server Key from your Google Cloud Messaging enabled app (Android)
History
1.0.2
- Replaced hooks with Cordova Variables
- Using cordova-plugin-ms-capptain as the new plugin Id
1.0.1
- Updated Capptain iOS SDK to 1.16.2
- Updated Capptain Android SDK to 2.4.1
- Using swizzling to remove ld warning on iOS
- Adding deferred Remote Notification
1.0.0
- Initial Release
11 years ago