如何将Google Analytics集成到jQueryMobile网站中

12

jQueryMobile首次加载页面的方式与其他网站相同。常规的Google Analytics集成可以正常工作——请求被跟踪。但是,随后加载的页面是异步加载的,用户点击不会被跟踪。

如何将Google Analytics集成到jQueryMobile网站中,以便跟踪所有页面的点击?


1
这是一个更新的答案,使用jQuery Mobile 1.3进行正确的事件绑定。 - Walf
3个回答

15

Jon Gales写了一篇很棒的文章,介绍了这个问题。

http://www.jongales.com/blog/2011/01/10/google-analytics-and-jquery-mobile/

下面是他推荐使用的代码:

$('[data-role=page]').live('pageshow', function (event, ui) {
    try {
        _gaq.push(['_setAccount', 'YOUR_GA_ID']);

        hash = location.hash;

        if (hash) {
            _gaq.push(['_trackPageview', hash.substr(1)]);
        } else {
            _gaq.push(['_trackPageview']);
        }
    } catch(err) {

    }

});

更新

由于live现在已经被弃用,如果您使用的是jQuery 1.7+,则应改用on事件。 http://api.jquery.com/on/


3
如果您在第一页已经有了_setAccount调用,那么您无需再次使用它。在_setAccount之后,您可以多次调用_trackPageview。 - Eduardo
2
jQuery Mobile 1.0 Final 打包了 jQuery Core 1.6.4,因为升级到 1.7+ 可能会导致问题(我在黑莓和 1.7 上看到白屏问题)。我提出这个问题是因为 .on() 对于 jQuery Mobile 1.0 Final 来说有点太新了,但是您可以使用相同方式的 .delegate() - Jasper
请注意,在jQuery Mobile执行之前,您必须绑定此事件,否则它根本无法工作(请将其放在mobileinit处理程序中)。是的,您只需要调用_SetAccount一次,但它也能这样工作。 - Guillaume Gendre
在Android 4.0+和iOS6上,使用PhoneGap对我不起作用 :( - Guillaume Gendre
你不能仅仅将 live 替换为 on,因为委托的格式是不同的。 - Walf

4
对于那些在使用Phonegap和Google Analytics时遇到问题的人:
Google代码使用cookies,但它不适用于Phonegap使用的file:// urls。Pokki团队制作了一个很好的实现,用localStorage代替cookies。我在github上进行了分支以去掉对pokki的需求,因此这里提供了一个可以作为独立库与Phonegap一起使用的解决方案。
希望这能帮助其他人 :) https://github.com/ggendre/GALocalStorage

0

-1. 两个链接都没有回答问题。前者是关于原生iOS和Android应用程序的GA;后者与jQuery Mobile无关。 - Yahel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接