Вы можете написать свои собственные плагины PhoneGap (в основном мост JavaScript в Native code). Это дало бы вам свободу использовать любое из существующих нативных решений, которые имеют автономную поддержку (Webtrends, GA, Flurry, ...).
См .: http://wiki.phonegap.com/w/page/36752779/PhoneGap%20Plugins
Вам нужно будет создать один файл JavaScript и один собственный файл для каждой платформы, которую вы хотите поддерживать. В своем родном коде вы будете звонить в SDK вашего поставщика отслеживания.
Я использовал пример Android и просто собрал этот пример в качестве примера. Пожалуйста, имейте в виду, что это не было проверено вообще или даже помещено в IDE. Я просто отредактировал предоставленные примеры в блокноте ++: -)
// Java
public class TrackingPlugin extends Plugin {
public static final String ACTION="pageView";
@Override
public PluginResult execute(String action, JSONArray data, String callbackId) {
Log.d("Tracking", "Plugin Called");
PluginResult result = null;
if (ACTION.equals(action)) {
try {
String pageTitle= data.getString(0);
JSONObject res = new JSONObject();
SOME_TRACKING_API.Track(pageTitle);
res.put("status","OK");
result = new PluginResult(Status.OK, res);
} catch (JSONException jsonEx) {
Log.d("DirectoryListPlugin", "Got JSON Exception "+ jsonEx.getMessage());
result = new PluginResult(Status.JSON_EXCEPTION);
}
} else {
result = new PluginResult(Status.INVALID_ACTION);
Log.d("TrackingPlugin", "Invalid action : "+action+" passed");
}
return result;
}
// JavaScript
/**
* @return Object literal singleton instance of Track
*/
var Track = function() {
};
/**
* @param pageTitle The title for a new view
* @param successCallback The callback which will be called when track call is done
* @param failureCallback The callback which will be called when track call is done
*/
Track.prototype.pageView = function(pageTitle,successCallback, failureCallback) {
return PhoneGap.exec(
successCallback, //Success callback from the plugin
failureCallback, //Error callback from the plugin
'TrackingPlugin', //Tell PhoneGap to run "TrackingPlugin" Plugin
'pageView', //Tell plugin, which action we want to perform
[pageTitle]); //Passing list of args to the plugin
};
PhoneGap.addConstructor(function() {
PhoneGap.addPlugin("Track", new Track());
});