从Onesignal(Phonegap)获取additionalData

8
我在这里阅读了文档: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);

如何检索此数据...
谢谢
2个回答

3

在对我的应用程序进行多次调试后,我终于找到了问题所在。jsonData的JSON结构如下:

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

要检索你的数据:

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

0

尝试使用 jsonData.OSNotificationPayload 而不是 jsonData.payload

例如:访问标题

jsonData.OSNotificationPayload.title

嗨,感谢回复。但是它仍然不起作用。没有警报:`alert('notificationCallback: ' + JSON.stringify(jsonData)); => //所有数据 alert('Payload: ' + JSON.stringify(jsonData.OSNotificationPayload)); // => 未定义 alert('Title : '+ JSON.stringify(jsonData.OSNotificationPayload.title)); // => 没有警报 alert('Data : '+ JSON.stringify(jsonData.OSNotificationPayload.additionalData)); // => 没有警报` - Jean R.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接