javascript - 打开通知时未调用 OneSignal Ionic 回调函数

标签 javascript angularjs cordova ionic-framework onesignal

我正在使用 ionic 框架。 我已成功注册并能够收到通知。 但是当我打开通知时,我的回调函数没有被调用。 它只是在第一个 init() 时被调用。 设备准备就绪后,我已将代码放置在 app.js run function() 中。 我搜索了几个论坛,但找不到任何解决方案。 下面是代码:

$ionicPlatform.ready(function() { 
// Hide the accessory bar by default (remove this to show the accessory bar    above the keyboard 
// for form inputs) 
if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) { 
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 
cordova.plugins.Keyboard.disableScroll(true); 
} 
var notificationOpenedCallback = function(jsonData) { 
console.log('didReceiveRemoteNotificationCallBack: ' + JSON.stringify(jsonData)); 
if (jsonData.additionalData && jsonData.additionalData.targetUrl) { 
var state = $injector.get($state); 
$state.go(jsonData.additionalData.targetUrl); 
} 
}; 
window.plugins.OneSignal.init("MY-API_KEY", { 
googleProjectNumber: "MY-GOOGLE-PROJECT-NUMBER", 
autoRegister: true 
}, 
notificationOpenedCallback({title: 'test'})); 
window.plugins.OneSignal.setSubscription(true); 
window.plugins.OneSignal.enableNotificationsWhenActive(true); 
// oneSignal.init(); 
if (window.StatusBar) { 
// org.apache.cordova.statusbar required 
StatusBar.styleDefault(); 
} 
});

仅当应用程序第一次启动并调用 init 时才会触发回调函数。 当我打开收到的通知时,回调函数不会被触发。 我这样做只是为了安卓。有人可以帮我吗?

以下是 ionic 信息: Cordova CLI:6.2.0 Gulp 版本:CLI 版本 3.9.0 吞咽本地: ionic 框架版本:1.2.4 ionic CLI 版本:1.7.15 Ionic 应用程序库版本:0.7.2 操作系统: 节点版本:v4.4.1

谢谢

最佳答案

您需要更改以下代码:

window.plugins.OneSignal.init("50d4a379-9e94-44cf-bba8-06b6bbc312da", { 
  googleProjectNumber: "724048084872", 
  autoRegister: true 
}, 
notificationOpenedCallback({title: 'test'}));

致:

window.plugins.OneSignal.init("50d4a379-9e94-44cf-bba8-06b6bbc312da", { 
  googleProjectNumber: "724048084872", 
  autoRegister: true 
}, 
notificationOpenedCallback);

关于javascript - 打开通知时未调用 OneSignal Ionic 回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38271418/

相关文章:

javascript - 动态叠加多个清晰的图像

angularjs - 超时在 AngularJS Karma 中不起作用 - Jasmine 测试

ios - 创建新的 PhoneGap 项目报错

cordova - Android - Phonegap,从 apk 中提取代码

cordova - Visual Studio 多设备项目在 Ripple 中间歇性地挂起

javascript - 如何使用ACE编辑器?如何将 JS 编辑器更改为 PHP 编辑器或其他语言?

javascript - 为什么全局变量 'name' 变成了字符串?

javascript - 如何使用 jquery 或 javascript 在超链接上一段时间后撤消 event.preventdefault

javascript - 在单页应用程序中使用 Angularjs 单击按钮加载 View

javascript - Sequelize如何使用关联表?