Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PhoneGap应用程序的最佳分析?_Javascript_Cordova_Google Analytics_Sencha Touch_Analytics - Fatal编程技术网

Javascript PhoneGap应用程序的最佳分析?

Javascript PhoneGap应用程序的最佳分析?,javascript,cordova,google-analytics,sencha-touch,analytics,Javascript,Cordova,Google Analytics,Sencha Touch,Analytics,在phonegap应用程序中跟踪用户操作的最佳方法是什么?我使用PhoneGap Build来构建一个纯JS/CSS/HTML Sencha Touch应用程序,因此我无法访问任何其他内容。Google Analytics只适用于连接活动,我相信我的大部分应用程序都是在网络之外使用的 有什么解决办法?我愿意为值得使用的东西付费。您可以编写自己的PhoneGap插件(基本上是JavaScript到本机代码桥)。这将使您可以自由地使用任何现有的具有离线支持的本机解决方案(Webtrends、GA、F

在phonegap应用程序中跟踪用户操作的最佳方法是什么?我使用PhoneGap Build来构建一个纯JS/CSS/HTML Sencha Touch应用程序,因此我无法访问任何其他内容。Google Analytics只适用于连接活动,我相信我的大部分应用程序都是在网络之外使用的


有什么解决办法?我愿意为值得使用的东西付费。

您可以编写自己的PhoneGap插件(基本上是JavaScript到本机代码桥)。这将使您可以自由地使用任何现有的具有离线支持的本机解决方案(Webtrends、GA、Flurry等)

见:

您必须为每个要支持的平台创建一个JavaScript文件和一个本机文件。在本机代码中,您可以调用跟踪供应商的SDK

我使用了Android示例,并将此示例作为示例放在一起。请注意,这根本没有经过测试,甚至没有放到IDE中。我只是用记事本++:-)编辑了提供的示例

//爪哇

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());
});

当你谈论离线分析时,一切都变得非常棘手。我突然想到两件事。。首先,我不确定你的应用程序是针对iOS还是Android的,但苹果拒绝了这些应用程序,因为“应用程序”只不过是移动网站的包装而已。这与这些应用程序没有利用任何核心设备功能(没有本机代码)这一事实更相关

其次,我意识到您提到您希望远离本机代码,但请看一下GA Mobile SDK。你会发现GA实际上有一种在设备离线时跟踪和保存分析的方法。当应用程序具有网络连接时,分析将发送到GA服务器。这对您来说是一种折衷,使用一点本地代码,但可以节省时间,因为您不必推出自己的解决方案。干杯

注意:对于较新版本的PhoneGap,此信息似乎已过时。小心行事

PhoneGap发布了一个半官方的Google Analytics插件,用于利用iOS和Android的官方Google Analytics SDK;对于其他平台,您可以依赖JavaScript

你可以在这里找到它

以下是以下文件夹:


既然接受的答案是无效的,因为那个插件已经不存在了,我只想提及我为此检查的插件。实际上有3个(加上一些测试版):

  • 艰难的选择。。。我一直在分别测试它们,它们似乎都能胜任这项工作,所以这可能只是一个偏好问题,基本上取决于你喜欢它们的使用方式

    它们都没有提到任何关于设备脱机时排队事件以及网络可用时调度事件的内容,但是GAPlugin有一个队列,该队列根据初始化期间可以设置的频率进行调度,因此它可能可以解决脱机问题


    如果有人对此有所了解,欢迎发表评论。一旦我有时间,我将尝试在设备上测试它们,因为iOS模拟器似乎不允许我关闭wifi…

    我现在有0个本机代码,我希望保持这种状态。我可能只是满足于只收集我的一部分用户的分析,或者等待一个利用本地存储/本地数据库的适当解决方案。当PhoneGap Build支持插件时,这可能成为一个可行的选择。我已经发布了一个HTML5应用程序3个月了,没有任何拒绝。第一次修订也是一堆垃圾。“苹果拒绝一切”的神话就是这样。我没有使用任何本机功能。这只有在PhoneGap构建支持插件时才可行。我不是在构建我自己的phonegap应用程序。那篇文章中指向GitHub存储库的链接已经失效,我在GitHub上找不到新版本的存储库。这个插件有新版本吗?嗯,没关系-他一定改变了分析文件夹的路径。你的链接正常。插件似乎过时了。我认为它不适用于新版本的Cordova。