【问题标题】:Get OneSignal UserID after subscribe订阅后获取 OneSignal UserID
【发布时间】:2017-09-26 21:41:45
【问题描述】:

我正在使用 OneSignal 来获取通知,因此根据文档,我制作了这样的 SDK 代码:

<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async></script>
<script>
var OneSignal = window.OneSignal || [];
    OneSignal.push(["init", {
      appId: "myappID",
      safari_web_id: "myID",
      autoRegister: false,
      promptOptions: {
            /* My prompt options */
       },
       welcomeNotification: {
            //my options
       },
       notifyButton: {
        enable: true,
        showCredit: false,
        prenotify: true,
        position: 'bottom-left',
        text: {
            /*My text options */
        },
        colors: { // My custom colors
        }
      }
    }]);

    OneSignal.push(function(){
        OneSignal.showHttpPrompt();

        OneSignal.getUserId().then(function(userId){
            console.log("OneSignal User ID:", userId);
        });
    });
</script>

显示幻灯片提示消息效果很好,但订阅后我需要刷新网站才能在控制台中获取用户 ID。如何修改此代码功能以在订阅后立即在控制台中获取用户 ID?

【问题讨论】:

    标签: push-notification notifications onesignal


    【解决方案1】:

    您需要为订阅更改事件添加一个监听器。否则 getUserId 调用将在用户接受订阅之前触发。这对我有用:

    var OneSignal = window.OneSignal || [];
    
    OneSignal.push(function() {
      OneSignal.on('subscriptionChange', function (isSubscribed) {
        console.log("The user's subscription state is now:",isSubscribed);
          OneSignal.push(function() {
            OneSignal.getUserId(function(userId) {
              console.log("OneSignal User ID:", userId);
            });
          });
        });
      });
    
      OneSignal.push(["init", {
        appId: "myappID",
        safari_web_id: "myID",
        autoRegister: false,
        promptOptions: {
            /* My prompt options */
        },
        welcomeNotification: {
            //my options
        },
        notifyButton: {
          enable: true,
          showCredit: false,
          prenotify: true,
          position: 'bottom-left',
          text: {
            /*My text options */
         },
         colors: { // My custom colors
         }
       }
    }]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-02
      • 2016-07-27
      • 2017-08-28
      • 2018-03-28
      • 2015-06-11
      • 2018-10-17
      相关资源
      最近更新 更多