angularjs控制器中的OneSignal推送通知句柄

时间:2016-12-04 15:44:54

标签: javascript angularjs cordova onesignal

我在cordova app中处理OneSignal pushNotification时遇到问题。我的目的是从任何控制器打开显示页面,每个页面都有特定的控制器。每当通知到来时都会做同样的事情,打开显示页面。我的代码在这里:

的index.html

 function onDeviceReady() {
  document.removeEventListener('deviceready', onDeviceReady, false);
  var notificationOpenedCallback = function(jsonData) {
      //do some thing
  };

  window.plugins.OneSignal
    .startInit("xxxxxxxxxxxxxxxxxxx", "xxxxxxxxxxxxx")
    .handleNotificationOpened(notificationOpenedCallback)
    .endInit();           
}

控制器

app.controller('startController', function ($scope, $http) {

 var notificationOpenedCallback = function (jsonData) {
    $scope.myNavigator.pushPage('form/displaypage.html');

 };

 window.plugins.OneSignal //get error : Uncaught TypeError: Cannot read property 'OneSignal' of undefined
    .startInit("xxxxxxxxxxxxxxxxxxx", "xxxxxxxxxxxxx)
    .handleNotificationOpened(notificationOpenedCallback)
    .endInit();
});

如何将windos.plugins.OneSignal放入控制器?

1 个答案:

答案 0 :(得分:0)

对于cordova应用,您需要先添加OneSignal插件。在终端中,在cordova应用程序的根目录下,执行

cordova plugin add onesignal-cordova-plugin

如果要将此插件保存到config.xml,请在命令末尾添加--save标志。如果您使用共享版本控制,这会派上用场。

这将安装并注册插件。然后,您应该重建项目并在您的设备上重试。

有关使用Cordova SDK进行设置的更多信息,请访问here