【问题标题】:Test OneSignal Push Notification on iOS Simulator在 iOS 模拟器上测试 OneSignal 推送通知
【发布时间】:2021-04-03 15:56:10
【问题描述】:

我在我的项目中设置了react-native-onesignal 以使用 OneSignal 实现推送通知。

从 Xcode 11.4 Beta 开始可以在 iOS 模拟器上测试推送通知。我创建了 JSON 格式的 apns 文件来测试模拟器上的推送通知,效果很好。

但是如何模拟 OneSignal 推送通知?

我关注了 OneSignal 文档并希望接收从 OneSignal 仪表板发送的推送通知。

这是我在 App.tsx 文件中实现的内容。

const initializeOneSignal = () => {
  OneSignal.setLogLevel(6, 0);

  OneSignal.init("MY_ONESIGNAL_APP_ID", {
    kOSSettingsKeyAutoPrompt: false,
    kOSSettingsKeyInAppLaunchURL: false,
    kOSSettingsKeyInFocusDisplayOption: 2,
  });
  OneSignal.inFocusDisplaying(2);

  OneSignal.promptForPushNotificationsWithUserResponse(myiOSPromptCallback);

  OneSignal.addEventListener('received', onPNReceived);
  OneSignal.addEventListener('opened', onPNOpened);
  OneSignal.addEventListener('ids', onPNIds);
};

useEffect(() => {
  initializeOneSignal();

  return () => {
    OneSignal.removeEventListener('received', onPNReceived);
    OneSignal.removeEventListener('opened', onPNOpened);
    OneSignal.removeEventListener('ids', onPNIds);
  };
}, []);

const onPNReceived = notification => {
  console.log('Notification received: ', notification);
};

const onPNOpened = openResult => {
  console.log('Message: ', openResult.notification.payload.body);
  console.log('Data: ', openResult.notification.payload.additionalData);
  console.log('isActive: ', openResult.notification.isAppInFocus);
  console.log('openResult: ', openResult);
};

const onPNIds = device => {
  console.log('Device info: ', device);
};

const myiOSPromptCallback = permissions => {
  console.log('Permissions: ', permissions);
};

当我从 OneSignal 仪表板发送推送通知时,我看不到任何记录的消息。

我需要在 apns 文件中做些什么吗?

任何帮助将不胜感激。

【问题讨论】:

  • 您是否尝试从 OneSignal 服务器(然后是 APNs,然后)发送到 iOS 模拟器?这是不可能的
  • @Honey 我正在尝试在 OneSignal 仪表板上发送推送通知

标签: ios react-native push-notification onesignal react-native-onesignal


【解决方案1】:

tl;dr 你不能向模拟器发送真正的通知。您只能将模拟通知发送到模拟器

您的服务器忽略了模拟器,因为模拟器没有设备令牌。苹果决定不给它一个。我认为这是为了让用户无法伪造他们的设备令牌并在他们的模拟器上获得通知......

11.4 只允许将 APNs 有效负载拖放到模拟器中,而无需提及设备令牌。

【讨论】:

    猜你喜欢
    • 2018-03-14
    • 2020-09-03
    • 1970-01-01
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    • 2014-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多