【问题标题】:Hybrid Android Phonegap app anaytics with Piwik使用 Piwik 的混合 Android Phonegap 应用程序分析
【发布时间】:2015-10-24 06:10:21
【问题描述】:

如果使用 Google Analytics,跟踪在 Phonegap 中创建的 Android 混合应用程序的应用程序使用情况和事件是一件容易的事。我使用this Cordova plugin 实现了我自己的解决方案。我曾预计实施 Piwik 分析会同样简单。我从this plugin 开始,然后按照说明编写了一个小测试应用程序。我使用了 phonegap jquery-mobile-starter 模板,其app.js 我按照以下几行进行了修改

$(document).on("deviceready", function() 
{
 deviceReadyDeferred.resolve();
 alert('piwik track');
 piwik.startTracker('https://example.com/piwik/piwik.php','siteID'); 
 alert('Device Ready');
});

$(document).on("mobileinit", function () 
{
 jqmReadyDeferred.resolve();
 window.onerror = whenError;
 $(document).on('pagecontainershow',pgcShow);
});

function pgcShow()
{
 alert('Page Container now SHOWING!!');
 $('#btn').click(doClick);
}

function doClick()
{
 alert('Click Me');
 piwik.trackEvent('click','I was clicked');
}

function whenError(e,u,l)
{
 alert(e); 
}

说明

  • 我已尝试进行足够的错误处理,以确保 Piwik 分析的失败不是由于我的测试代码中的其他原因造成的。
  • 在 PageContainerShow 事件中,我为 index.html 页面上的按钮连接了 click 事件,以将 trackEvent 消息发送回位于 `https://mypiwikserver.com/piwik/piwik.php' 的 Piwik API。
  • siteID 是我从 Piwik 管理控制台上的所有网站列表中创建的“网站”的 ID。
  • 我已经修改了 Phonegap config.xml 文件

    访问原点="*" 访问 origin="https://mypiwikserver.com"

完成所有这些后,我构建了应用程序,将其安装在我的 Android 手机上,打开它,然后转到我的 Piwik Web 控制台,希望看到 Actions:Events 中记录了一个事件。但是,我发现它始终保持空白。我没有注意到任何错误消息,并且我所有的各种alerts 都按预期出现,所以我看不到我在这里可能做错了什么。非常感谢您对此的帮助。

【问题讨论】:

    标签: android cordova analytics hybrid-mobile-app matomo


    【解决方案1】:

    @DroidOS,
    我假设你有一个white-list 问题。我无法确认这一点,但我已经阅读(可能在白名单文档中),一些适应是为 *一些* google 网站提供的。

    这个快速回答可能会让您快速解决问题。

    许多常见的白名单问题的修复

    替代方法是这个快速修复——但要知道这个快速修复消除了对white-list 的所有需求。这会创建一个您可能不想绕过的security issue

    快速修复将此添加到您的config.xml 以用于仅限PHONEGAP BUILD
    <preference name="phonegap-version" value="3.7.0" />

    长答案是这样的:

    来自Top Mistakes by Developers new to Cordova/Phonegap,您已点击:

    • #6 没有为你的编译器设置“phonegap 版本”
    • #7 没有为你的插件设置“版本”
    • #10 不在 config.xml 中添加新的“白名单”和“白名单插件”参数。

    对于 #6 和 #7

    使用 CLI 版本,如果您没有为您的平台或“Phonegap Build”分配版本,如果您没有在 config.xml 中设置 phonegap-version,您将获得最新版本。如果幸运的话,您的程序会按预期运行。如果你不走运,你会得到一系列级联错误。

    幸运的是,Holly Schinsky 写了一篇很好的博文来解释这一切:

    Cordova/PhoneGap 版本混乱
    http://devgirl.org/2014/11/07/cordovaphonegap-version-confusion/

    #10

    这个相对 * 新 * 要求意味着——要访问网络上的任何网站或资源,您必须使用白名单和白名单插件。如果您使用的是 cordova-android@4.0.0 或更高版本,此要求将生效;包括 cli-5.1.1 和 cli-5.2.0。但是,如果您的版本是 4.0.0 之前的版本,比如 3.5.0 或 3.7.0,那么您将不必添加白名单要求。 p>

    需要明确的是,“白名单”已经存在了一段时间,但插件和要求是非常新的。如您所料,当添加“白名单”时,事实上的开放访问功能已被弃用。或者换一种说法,事实上的开放访问功能是计划和计划取消的。这一变化标志着在移除开放获取功能方面迈出了一步。

    此外,内容安全政策 (CSP) 吸引了众多开发人员 - 因为它的宣传太差了。 根据您的使用情况和所使用的Phonegap 版本,CSP 需要进入您使用的每个HTML 页面,就像您必须等待“设备就绪”一样。但是,在某些情况下根本不需要它。文档让一些人感到困惑,请仔细阅读。 该文档隐藏在许多最新文档页面的底部。

    最后,Raymond Camden 在他的博客中指出了LARGE change in policy starting with Cordova 5

    相关链接

    Phonegap 构建论坛:Notes for upgrading to cli-5.1.1 on PGB,现在需要白名单

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-30
      • 1970-01-01
      • 1970-01-01
      • 2013-02-25
      • 2015-12-20
      • 1970-01-01
      • 2014-08-21
      • 1970-01-01
      相关资源
      最近更新 更多