javascript - 有谁知道 "Uncaught ReferenceError: analytics is not defined "是什么意思以及为什么安装后没有应用程序用户?

标签 javascript android angularjs google-analytics ionic-framework

我正在将 Google Analytics 与我的 ionic Framework 应用程序一起使用,并按照 https://blog.nraboy.com/2014/06/using-google-analytics-ionicframework/ 中的说明进行操作。 ,我在谷歌分析中使用移动应用程序首选项。首先,我在我的设备中测试了它,但在分析概述中没有移动应用程序用户,而是使用 Windows 和 Mac 的用户。在我的浏览器中出现“ Uncaught ReferenceError :分析未定义”。我不知道我做错了什么...

这是我的代码:

.controller('AnalyticsController', function($scope) {
    if(typeof analytics !== undefined) { analytics.trackView("Analytics Controller"); }

    $scope.initEvent = function() {
        if(typeof analytics !== undefined) { analytics.trackEvent("Category", "Action", "Label", 25); }
    }
})

.run(function($ionicPlatform, $ionicPopup) {
    $ionicPlatform.ready(function() {
        if(typeof analytics !== undefined) {
            analytics.startTrackerWithId("UA-xxxx");
        } else {
            console.log("Google Analytics Unavailable");
        }
    });
}); 

最佳答案

这意味着,analytics 尚未定义。您的 if 语句未捕获它的原因是 typeof undefined 返回字符串 "undefined" 而不是基元 undefined,所以你应该这样做:

.controller('AnalyticsController', function($scope) {
    if(typeof analytics !== 'undefined') { analytics.trackView("Analytics Controller"); }

    $scope.initEvent = function() {
        if(typeof analytics !== 'undefined') { analytics.trackEvent("Category", "Action", "Label", 25); }
    }
})

.run(function($ionicPlatform, $ionicPopup) {
    $ionicPlatform.ready(function() {
        if(typeof analytics !== 'undefined') {
            analytics.startTrackerWithId("UA-xxxx");
        } else {
            console.log("Google Analytics Unavailable");
        }
    });
}); 

理想情况下,您应该建立一个工厂来创建可注入(inject)的分析服务,而不是在全局范围内引用事物。

关于javascript - 有谁知道 "Uncaught ReferenceError: analytics is not defined "是什么意思以及为什么安装后没有应用程序用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29664948/

相关文章:

android - 当 ProgressBar 在 android 中可见时如何禁用用户交互?

angularjs - 自定义过滤器使用 angular-meteor 生成无限摘要循环

angularjs - 在angular js项目中强制更新html5视频源

javascript - Parse.com 文件未更新,导致数据浏览器的链接损坏

jquery - 有没有办法向 DOM 元素添加变量/属性(例如,jQuery 选择器返回的元素)

javascript - 使下拉菜单可见的javascript

javascript - ngRepeat 项目和重复项目的属性?

javascript - 通过ajax(chrome)在vanilla js中以编程方式触发文件输入点击

android - 如何强制 eclipse 将 xml 布局和样式显示为文本?

android - 为什么菜单没有为您预先充气?