Cordova 登录后在Ionic应用程序中设置OneSignal标记

Cordova 登录后在Ionic应用程序中设置OneSignal标记,cordova,ionic-framework,cordova-plugins,onesignal,Cordova,Ionic Framework,Cordova Plugins,Onesignal,在用户登录到我的应用程序后,我无法设置OneSignal标记。在成功登录到我的登录控制器后,我已经包含了这段代码,但运气不好 if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) { window.plugins.OneSignal.sendTag("email", $localStorage.email);

在用户登录到我的应用程序后,我无法设置OneSignal标记。在成功登录到我的登录控制器后,我已经包含了这段代码,但运气不好

if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
                window.plugins.OneSignal.sendTag("email", $localStorage.email);
            }
我也尝试过不使用条件,但得到了“ReferenceError:找不到变量:cordova”


推送通知请求正在工作。我就是无法设置这些标签

我刚刚自己解决了这个问题!事实证明,这是正确的方法:

var notificationOpenedCallback = function(jsonData) {
      console.log('notificationOpenedCallback: ' + JSON.stringify(jsonData));
    };

    window["plugins"].OneSignal
      .startInit("MY_APP_ID", "gcmid")
      .handleNotificationOpened(notificationOpenedCallback)
      .endInit();
这在run函数中是这样的:

.run(function($ionicPlatform, $localStorage, $sessionStorage, $state) {
  $ionicPlatform.ready(function() {

    if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(false);
      cordova.plugins.Keyboard.disableScroll(true);

      var notificationOpenedCallback = function(jsonData) {
          console.log('notificationOpenedCallback: ' + JSON.stringify(jsonData));
        };

        window["plugins"].OneSignal
          .startInit("1a1bfc10-2a06-42b8-af98-ae1d8a55665e", "gcmid")
          .handleNotificationOpened(notificationOpenedCallback)
          .endInit()
          .sendTag("email", $localStorage.email);
    }
    if (window.StatusBar) {
      StatusBar.overlaysWebView(true);
      StatusBar.style(1);
    }

  });
})
.run(function($ionicPlatform, $localStorage, $sessionStorage, $state) {
  $ionicPlatform.ready(function() {

    if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(false);
      cordova.plugins.Keyboard.disableScroll(true);

      var notificationOpenedCallback = function(jsonData) {
          console.log('notificationOpenedCallback: ' + JSON.stringify(jsonData));
        };

        window["plugins"].OneSignal
          .startInit("1a1bfc10-2a06-42b8-af98-ae1d8a55665e", "gcmid")
          .handleNotificationOpened(notificationOpenedCallback)
          .endInit()
          .sendTag("email", $localStorage.email);
    }
    if (window.StatusBar) {
      StatusBar.overlaysWebView(true);
      StatusBar.style(1);
    }

  });
})