javascript - Ionic 与谷歌分析

标签 javascript cordova google-analytics ionic-framework

我在互联网上搜索了如何将谷歌分析添加到 ionic 项目中。 Cordova 等有很多不同的插件,但没有一个可以工作。也许我做错了什么,希望有人能帮忙。

我现在得到的适用于 ionicserve --lab 选项。但当它安装在手机上时就不行了。我在控制台(--lab 和 Phone)中也没有收到任何错误。与检查连接时,调试也不会加载。所以我不确定这里发生了什么......

索引.html

 <head>
    <link href="lib/ionic/css/ionic.css" rel="stylesheet">
    <link href="css/style.css" rel="stylesheet">
    <script src="lib/ionic/js/ionic.bundle.js"></script>
    <script src="lib/ngCordova/dist/ng-cordova-mocks.min.js"></script>
    <script src="lib/ngCordova/dist/ng-cordova.min.js"></script>
    <script src="cordova.js" ></script>
    <script src="js/openfb.js"></script>
    <script src="js/ngopenfb.js"></script>
    <script src="js/app.js"></script>
    <script src="js/controllers.js"></script>
    <script src="js/services.js"></script>
  </head>
  <body ng-app="starter" ng-controller="AppCtrl">

  <script>
            (function (i, s, o, g, r, a, m) {
              i['GoogleAnalyticsObject'] = r;
              i[r] = i[r] || function () {
                (i[r].q = i[r].q || []).push(arguments)
              }, i[r].l = 1 * new Date();
              a = s.createElement(o),
                      m = s.getElementsByTagName(o)[0];
              a.async = 1;
              a.src = g;
              m.parentNode.insertBefore(a, m)
            })(window, document, 'script', 'js/analytics.js', 'ga');

            ga('create', 'XX-XXXXXXX-XX', 'auto');
  </script>
</body>
</html>

App.js

.config(function ($stateProvider, $urlRouterProvider) {

          $stateProvider
                  .state('tab', {
                    url: '/tab',
                    abstract: true,
                    templateUrl: 'templates/tabs.html',
                  })

                  .state('tab.dash', {
                    url: '/dash',
                    views: {
                      'tab-dash': {
                        templateUrl: 'templates/tab-dash.html',
                        controller: 'DashCtrl'
                      }
                    },
                    pageTitle: '[app] Dashboard'
                  })

Controller .js

angular.module('starter.controllers', [])
        .controller('AppCtrl', function ($rootScope, $scope, $window, $http, FB) {
          $rootScope.token = window.localStorage.getItem("token");
          $rootScope.$on('$stateChangeSuccess', function (event, toState, toParams, fromState, fromParams) {
            $window.ga('send', 'pageview', {page: toState.pageTitle})
          })

最佳答案

Angulartics 是将 Google Analytics 与 Angular 集成的一个很好的库。它可以以简单的方式与 Ionic 一起使用。首先,添加库。

ionic plugin add cordova-plugin-google-analytics --save
bower install angulartics-google-analytics --save

在index.html中包含 Angular 脚本。诀窍是使用(迄今为止)未记录的 angletics cordova 谷歌分析插件。

 <!-- angulartics -->
<script src="bower_components/angulartics/src/angulartics.js"></script>
<script src="bower_components/angulartics/src/angulartics-ga-cordova-google-analytics-plugin.js"></script>

<!-- angulartics google analytics -->
<script src="bower_components/angulartics-google-analytics/lib/angulartics-ga.js"></script>

然后,在您的 app.js 中包含模块并在配置 block 中设置跟踪 ID

angular.module('app', [
  'ionic',

  // Include angulartics modules    
  'angulartics',
  'angulartics.google.analytics',
  'angulartics.google.analytics.cordova'
])

// Add config block    
.config(function (googleAnalyticsCordovaProvider) {
  googleAnalyticsCordovaProvider.trackingId = "UA-******-*";
})

就是这样。现在应该可以正常工作了。

关于javascript - Ionic 与谷歌分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33419202/

相关文章:

javascript - 单元测试未定义不是一个对象(评估 'this.groups.map' )

regex - 正则表达式包含和排除,无需提前

jquery - 着陆页上的谷歌分析代码和 cookie 法

android - Cordova:错误:必须在Application上下文中查找WIFI_SERVICE,否则在<Android N

ios - GeofencePlugin Cordova 插件不适用于 IOS

google-analytics - 无需 Google Optimize 即可填写 ExperimentID 和 ExperimentVariant

javascript - 谷歌跟踪脚本导致网站布局问题

javascript - 测试浏览器是否支持未静音播放内联视频

javascript - 将多个 AJAX 成功调用合并为一个

javascript - 设备 (ios/Android) 和桌面上的 WebSQL 数据库大小差异