在 Cordova 中使用 notificationOpenedCallBack Onesignal

Using notificationOpenedCallBack Onesignal with Cordova

我正在编写我的第一个 Android Cordova 应用程序,使用 OneSignal 进行推送通知。在 Google 上设置 OneSignal 和启用云消息传递的过程非常简单。完成后,我开始创建一个简单的 jQuery Mobile Cordova 应用程序并修改了 init 函数 app.js

function init() 
{
 window.plugins.OneSignal.setLogLevel({logLevel:4,visualLevel:4});
 var notificationOpenedCallback = function(jsonData) {
  alert(JSON.stringify(jsonData));
 window.plugins.OneSignal.enableVibrate(true);
 window.plugins.OneSignal.enableSound(true);

};

window.plugins.OneSignal.init('one-signal-id', {googleProjectNumber: 'project no'}, notificationOpenedCallback); }

构建 APK 后,我将其安装在我的 Android 设备上,并收到两条 INFO 消息 - 一条来自 Google,另一条来自 OneSignal。我假设这是因为我有一个日志级别设置为 4 的调试版本。

然后我继续通过 OneSignal 发送推送。该消息出现在“已发送消息”列表中。然而,我的 phone 没有任何反应 - 我原以为它至少会振动。

此外,我想挂接到 notificationOpened 事件。从 OneSignal docs 中不清楚应该如何完成。我进入了 OneSignal 和推送通知的第一个小时,所以我假设我在这里忽略了一些东西。如果有人能帮助我走上正轨,我将不胜感激。

如果您的应用处于焦点状态,则默认情况下不会显示通知。您可以通过将 enableNotificationsWhenActive 设置为 true.

来更改此设置

Step 2.1 在 OneSignal Cordova 设置指南中显示了在打开通知时设置回调处理程序。

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

window.plugins.OneSignal.init("b2f7f966-d8cc-11e4-bed1-df8f05be55ba",
                               {googleProjectNumber: "703322744261"},
                                notificationOpenedCallback);

jsonData 的结构与一些示例一起记录在 notificationOpenedCallback 中。