从 Onesignal (Phonegap) 获取附加数据

Posted

技术标签:

【中文标题】从 Onesignal (Phonegap) 获取附加数据【英文标题】:Get additionalData from Onesignal (Phonegap) 【发布时间】:2018-09-03 03:10:31 【问题描述】:

我在这里阅读了文档:https://documentation.onesignal.com/docs/cordova-sdk 但完全不清楚!

我尝试了多次测试什么都没有,我事件测试以获得标题但仍然没有

document.addEventListener('deviceready', function () 
  // Enable to debug issues.
  // window.plugins.OneSignal.setLogLevel(logLevel: 4, visualLevel: 4);

  var notificationOpenedCallback = function(jsonData) 
    alert('notificationCallback: ' + JSON.stringify(jsonData)); => json data

        alert('Title : '+ JSON.stringify(jsonData.payload.title)); => nothing

        alert('Title2 : '+ jsonData.payload.title); => nothing


        alert('Additional data: '+ jsonData.payload.additionalData); => nothing
    ;


  window.plugins.OneSignal
    .startInit("MY_ID")
    .handleNotificationOpened(notificationOpenedCallback)
    .endInit();
, false);

如何检索此数据..

谢谢

【问题讨论】:

【参考方案1】:

在我的应用程序上多次调试后,我终于找到了应用程序。 jsonData的JSON结构是:

jsonData
    notification: 
        payload: 
            title: "YOUR_TITLE",
            body: "BODY",
            additionalData: 
                "YOUR_KEY" : "YOUR_VALUE"
            ,

所以要检索您的数据:

JSON.stringify(jsonData.notification.payload.additionalData.<YOUR_KEY>)

【讨论】:

【参考方案2】:

jsonData.OSNotificationPayload

代替 jsonData.payload

例如:访问标题

jsonData.OSNotificationPayload.title

【讨论】:

您好,感谢您的回复。但它仍然不起作用。没有警报:alert('notificationCallback: ' + JSON.stringify(jsonData)); =&gt; //all data alert('Payload: ' + JSON.stringify(jsonData.OSNotificationPayload)); // =&gt; undefined alert('Title : '+ JSON.stringify(jsonData.OSNotificationPayload.title)); // =&gt; no alerts alert('Data : '+ JSON.stringify(jsonData.OSNotificationPayload.additionalData)); // =&gt; no alerts

以上是关于从 Onesignal (Phonegap) 获取附加数据的主要内容,如果未能解决你的问题,请参考以下文章

phonegap + Onesignal 和 minSdkVersion 错误

PhoneGap 上的 OneSignal for iOS 不注册设备

Phonegap - OneSignal 推送通知 - 每当用户点击通知时应用程序都会重新启动

如何从 react-native-onesignal 获取 pushToken?

是否可以使用 OneSignal 获取设备令牌

订阅后获取 OneSignal UserID