我正在尝试将推送通知集成到我的 Ionic/Cordova 应用程序中。我正在使用服务 OneSignal 进行集成。我已成功设置我的 iPhone 以接收来自 OneSignal 网络界面的推送通知。
下一步是获取 pushToken(OneSignal/Apple 用于向单个设备发送推送通知)填充到我的应用程序的 ionic 控制器中,以便我可以实现应用程序逻辑并根据应用程序事件推送消息。
我安装了他们的(OneSignal 的)Cordova 插件,并且我的 iPhone 注册了它并报告了 pushToken。但是,我无法终生将 pushToken 字符串传递给我的任何控制器。我怎样才能做到这一点?下面是我的 app.js 和 controller.js。
应用程序.js
angular.module('cApp', ['ionic', 'cApp.controllers'])
.run(function($ionicPlatform, $cordovaSplashscreen, $rootScope) {
$ionicPlatform.ready(function() {
if(window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
cordova.plugins.Keyboard.disableScroll(true); // Fixes keyboard issue
}
if (window.StatusBar) {
// org.apache.cordova.statusbar required
StatusBar.styleDefault();
}
/*===========================================================================
http://documentation.onesignal.com/v2.0/docs/phonegap--cordova-sdk-api#init
===========================================================================*/
window.plugins.OneSignal.init("5eb87dse-b458-11e3-ac11-000c2940e62c",
{googleProjectNumber: "",
autoRegister: true},
app.didReceiveRemoteNotificationCallBack);
window.plugins.OneSignal.getIds(function(ids) {
console.log('getIds: ' + JSON.stringify(ids)); // I can see PushToken and UserId in the console.
$rootScope.pushToken = ids.pushToken;
});
});
console.log($rootScope.pushToken);
})
// Configure Routes....... etc.
控制器.js
.controller('MenuCtrl', function($scope, $rootScope, $ionicModal, $ionicPlatform) {
console.log($rootScope.pushToken); // It comes back undefined :(