OneSignal自定义提示设置&通知按钮

时间:2016-09-09 06:20:54

标签: javascript jquery onesignal

如何自定义默认的OneSignal提示设置&通知按钮? enter image description here

我想删除带有铃声图标的通知按钮,并使用带有短信“#34;您是否要订阅以接收更新?”的引导警报进行更改?"只有两个按钮"是"或"否"选项。当用户点击"是"然后订阅用户。基本上我只想在页面的标题部分中使用订阅按钮,而不是OneFignal由dafault提供的按钮。

1 个答案:

答案 0 :(得分:7)

以下是OneSignal关于自定义或删除通知按钮的指南:https://documentation.onesignal.com/docs/web-push-prompts#section-subscription-bell

  

如何订阅后隐藏通知按钮,或仅在某些页面上显示?

     

通知按钮init选项接受displayPredicate函数,该函数在显示通知按钮之前进行评估。要隐藏通知按钮,此函数必须返回值false或解析为false的Promise。您可以返回任何其他值来显示通知按钮。

     

以下是在订阅用户时隐藏通知按钮的示例:

     

的JavaScript

// Do NOT call init() twice
// This is just an example
OneSignal.push(["init", {
    /* Your other init options here */
    notifyButton: {
        /* Your other notify button settings here ... */
        enable: true,
        displayPredicate: function() {
            return OneSignal.isPushNotificationsEnabled()
                .then(function(isPushEnabled) {
                    /* The user is subscribed, so we want to return "false" to hide the notify button */
                    return !isPushEnabled;
                });
        },
    }
}]);

以下是使用您自己的链接/用户界面进行订阅提示的指南:https://documentation.onesignal.com/docs/web-push-sdk-setup-https#section-4-customizing-user-subscription

  

使用链接订阅用户

     

这是一个例子。它添加了一个链接,单击该链接会提示用户订阅通知。仅当用户取消订阅并且支持通知时,才会显示此链接。

     

HTML

<body>
  <a href="#" id="subscribe-link" style="display: none;">Subscribe to Notifications</a>
  <script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async="async"></script>
  <script>
    function subscribe() {
      OneSignal.push(["registerForPushNotifications"]);
      event.preventDefault();
    }

    var OneSignal = OneSignal || [];
    /* This example assumes you've already initialized OneSignal */
    OneSignal.push(function() {
      // If we're on an unsupported browser, do nothing
      if (!OneSignal.isPushNotificationsSupported()) {
        return;
      }
      OneSignal.isPushNotificationsEnabled(function(isEnabled) {
        if (isEnabled) {
          // The user is subscribed to notifications
          // Don't show anything
        } else {
          document.getElementById("subscribe-link").addEventListener('click', subscribe);
          document.getElementById("subscribe-link").style.display = '';
        }
      });
    });
  </script>
</body>