You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Phonegap版OneSignal获取additionalData遇阻,官方文档不清晰

搞定OneSignal Cordova SDK的通知标题获取问题

兄弟,我太懂这种查官方文档越看越懵、折腾半天连个通知标题都拿不到的憋屈了!我帮你梳理下可能的问题和解决步骤,应该能帮你搞定。

先补全并修正你的代码

你的代码片段截断了,首先得确保OneSignal的初始化流程完整,而且标题的获取路径要对应正确的SDK返回结构。试试下面的完整代码:

document.addEventListener('deviceready', function () {
  // 开启调试日志(你已经加了,这步很重要,能帮你排查问题)
  window.plugins.OneSignal.setLogLevel({logLevel: 4, visualLevel: 4});

  // 第一步:用你的OneSignal APP ID初始化(必须填对!)
  window.plugins.OneSignal.initialize("你的OneSignal应用ID", {
    kOSSettingsKeyAutoPrompt: true // iOS自动请求通知权限,Android默认会请求
  });

  // 监听通知被打开的事件
  const handleNotificationOpened = (jsonData) => {
    console.log('通知打开回调数据:', jsonData); // 先在控制台打印完整数据,方便排查
    // 正确获取标题:不同SDK版本路径可能略有差异,先看控制台的结构
    const title = jsonData.notification?.title || jsonData.notification?.payload?.title;
    alert('通知标题: ' + (title || '未获取到标题'));
  };

  // 监听通知被收到的事件(如果需要在通知到达时就获取标题)
  const handleNotificationReceived = (notification) => {
    console.log('收到通知:', notification);
    const receivedTitle = notification?.title || notification?.payload?.title;
    alert('收到通知标题: ' + (receivedTitle || '未获取到标题'));
  };

  // 注册事件监听
  window.plugins.OneSignal.addEventListener('notificationOpened', handleNotificationOpened);
  window.plugins.OneSignal.addEventListener('received', handleNotificationReceived);
});

关键排查步骤

  • 核对APP ID:初始化时填的必须是你在OneSignal后台创建的对应平台(Android/iOS)的APP ID,填错了直接全白搭。
  • 确认通知权限:调用window.plugins.OneSignal.getPermissionSubscriptionState((status) => console.log(status)),在控制台看permissionStatus.authorized是否为true,如果是false,说明用户没允许通知权限。
  • 看调试日志:你已经开了最高级别的日志,在Chrome DevTools(Android)或者Safari(iOS)的控制台里搜OneSignal的日志,有没有初始化失败、订阅失败的报错信息。
  • 确认回调数据结构:不要硬猜字段路径!先在回调里console.log(jsonData),然后在控制台展开看具体的字段,比如有些版本标题在jsonData.notification.title,有些可能在jsonData.payload.title,根据实际结构调整。

测试小技巧

  • 用OneSignal后台发送测试通知,通过getPermissionSubscriptionState返回的userId定位你的测试设备。
  • 先测试received事件,确认设备能收到通知,再测试notificationOpened事件。
  • 如果还是没反应,卸载APP重新安装,确保权限请求弹窗被允许。

内容的提问来源于stack exchange,提问作者Jean R.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:36:13