使用 Piwik 进行混合 Android Phonegap 应用分析

问题描述 投票:0回答:1

如果使用 Google Analytics,则跟踪在 Phonegap 中创建的 Android 混合应用程序的应用程序使用情况和事件是一件容易的事情。我使用这个 Cordova 插件 实现了自己的解决方案。我原以为实施 Piwik 分析会同样容易。我从这个插件开始,然后按照说明编写了一个小测试应用程序。我使用了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 页面上按钮的单击事件,以将

    trackEvent
    消息发送回我的 Piwik API(位于“https://mypiwikserver.com/piwik/piwik”)。 php'

  • siteID
    是我为此目的而创建的 “网站” 的 ID,该 ID 从我的 Piwik 管理控制台上的 所有网站 列表中获取。

  • 为了更好的措施,我修改了 Phonegap

    config.xml
    文件

    访问原点=“*” 访问来源=“https://mypiwikserver.com”

完成所有这些后,我构建了应用程序,将其安装在我的 Android 手机上,打开它,然后转到我的 Piwik Web 控制台,希望看到记录在 Actions:Events 中的事件。然而,我发现它仍然顽固地保持空白。我没有注意到任何错误消息,并且我所有的各种

alerts
都按预期出现。我在这里做错了什么?

android cordova analytics hybrid-mobile-app matomo
1个回答
0
投票

@DroidOS,
我假设您遇到了

white-list
问题。我无法确认这一点,但我已经阅读过(可能在白名单文档中),一些住宿是为*某些*谷歌网站提供的。

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

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

替代方案是这种快速修复 - 但要知道这个快速修复消除了对

white-list
的所有需求。这会产生一个您可能不想绕过的安全问题

快速修复将此添加到您的

config.xml
,仅用于PHONEGAP构建
<preference name="phonegap-version" value="3.7.0" />

长答案是这样的:

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

这个相对*新*的要求意味着 – 要访问网络上的任何网站或资源,您必须使用白名单和白名单插件。如果您使用 [电子邮件受保护] 或更好的版本,则此要求将生效;包括 cli-5.1.1 和 cli-5.2.0。但是,如果您的版本是 4.0.0 之前的版本,比如说 3.5.0 或 3.7.0,那么您将不必必须添加白名单要求。

需要明确的是,“白名单”已经存在了一段时间,但插件和要求是非常新的。正如您所期望的,当添加“白名单”时,事实上的开放访问功能已被弃用。或者换句话说,事实上的开放访问功能已计划并计划被消除。此更改标志着删除开放访问功能的一步。

此外,内容安全策略(CSP)吸引了众多开发者 - 因为它的宣传太少了。 根据您的用途和您使用的 Phonegap 版本,CSP 需要进入您使用的每个 HTML 页面,就像您必须等待“deviceready”一样。然而,有些情况下根本不需要它。该文档对某些人来说有些混乱,请仔细阅读。 该文档隐藏在许多最新文档页面的底部。

最后,Raymond Camden 在他的博客中指出,从 Cordova 5 开始,政策发生了巨大变化

相关链接

Phonegap 构建论坛:

在 PGB 上升级到 cli-5.1.1 的注意事项,现在需要白名单

  • 科尔多瓦白名单指南
  • Phonegap 白名单指南
  • Phonegap 构建白名单指南
© www.soinside.com 2019 - 2024. All rights reserved.