react-onesignal:在通知提示后订阅Onesignal

问题描述

我一直在尝试将Onesignal与我的React项目集成。找到包react-onesignal后,我决定尝试一下。

它像这样集成在我的代码

    Onesignal.initialize("my_appid_is_here",{
      allowLocalhostAsSecureOrigin:true,autoRegister:true,autoResubscribe:true,persistNotification:true,})

  uSEOnesignalSetup(async() => {
    if (Onesignal.isPushNotificationsEnabled) {
      const instance = Onesignal.getonesignalInstance()
      const state = await Onesignal.getNotificationPermission()
      if (state !== "granted") {
        await Onesignal.registerForPushNotifications()
      } else {
        Onesignal.setSubscription(true)
      }
    }
  })

我能够在浏览器中触发注册提示(我收到“您想启用通知功能”警报),但是当我尝试在Onesignal中检查“受众群体”时,它仍然显示为空。

您知道我该怎么办吗?

预先感谢

解决方法

虽然我们感谢作者创建的包,但 OneSignal 不支持该包。我已经创建了有关如何将 OneSignal 集成到您的 ReactJS 应用程序的指南。

https://dev.to/devpato/push-notifications-in-reactjs-with-onesignal-5bon

您将使用 CDN:

    <script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async=""></script>

初始化 OneSignal


window.OneSignal = window.OneSignal || [];
const OneSignal = window.OneSignal;

OneSignal.push(()=> {
      OneSignal.init(
        {
          appId: "1a9bbed2-9294-4192-a736-01b461cb389a",//STEP 9
          promptOptions: {
            slidedown: {
              enabled: true,actionMessage: "We'd like to show you notifications for the latest news and updates about the following categories.",acceptButtonText: "OMG YEEEEESS!",cancelButtonText: "NAHHH",categories: {
                  tags: [
                      {
                          tag: "react",label: "ReactJS",},{
                        tag: "angular",label: "Angular",}
                  ]
              }     
          } 
        },welcomeNotification: {
          "title": "One Signal","message": "Thanks for subscribing!",} 
      },);
    });