Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript OneSignal自定义提示设置&;通知按钮_Javascript_Jquery_Onesignal - Fatal编程技术网

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

Javascript OneSignal自定义提示设置&;通知按钮,javascript,jquery,onesignal,Javascript,Jquery,Onesignal,如何自定义默认的OneSignal提示设置和通知按钮? 我想删除带有钟形图标的notify按钮,并将其更改为bootstrap alert,它有一条文本消息“您想订阅接收更新吗?”和一个带有“是”或“否”选项的两个按钮。当用户单击“是”时,请订阅该用户。基本上,我只希望在我的页面标题部分有一个订阅按钮,而不是OneSignal提供的dafault按钮。以下是OneSignal关于自定义或删除通知按钮的指南: 订阅后如何隐藏通知按钮,或仅在某些页面上显示通知按钮? notify button i

如何自定义默认的OneSignal提示设置和通知按钮?


我想删除带有钟形图标的notify按钮,并将其更改为bootstrap alert,它有一条文本消息“您想订阅接收更新吗?”和一个带有“是”或“否”选项的两个按钮。当用户单击“是”时,请订阅该用户。基本上,我只希望在我的页面标题部分有一个订阅按钮,而不是OneSignal提供的dafault按钮。

以下是OneSignal关于自定义或删除通知按钮的指南:

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

notify button init options接受displayPredicate函数,该函数在显示notify按钮之前进行计算。要隐藏notify按钮,此函数必须返回值false或解析为值false的承诺。您可以返回任何其他值以显示“通知”按钮

下面是一个在用户已订阅时隐藏通知按钮的示例:

JavaScript


下面是关于在订阅提示中使用自己的链接/UI的指南:

使用链接订阅用户

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

HTML


函数subscribe(){
OneSignal.push([“registerForPushNotifications”]);
event.preventDefault();
}
var OneSignal=OneSignal | |[];
/*本例假设您已经初始化了OneSignal*/
OneSignal.push(函数(){
//如果我们使用的是不受支持的浏览器,请不要执行任何操作
如果(!OneSignal.isPushNotificationsSupported()){
返回;
}
OneSignal.isPushNotificationsEnabled(函数(已启用){
如果(已启用){
//用户已订阅通知
//什么都不要展示
}否则{
document.getElementById(“订阅链接”).addEventListener(“单击”,订阅);
document.getElementById(“订阅链接”).style.display='';
}
});
});

感谢您的回答。以防万一,似乎
event.preventDefault()
不会在上面的代码中执行。@Gdeglin和其他所有代码,我希望onesignal在用户访问我的网站时自动提示用户订阅。如何操作?如何自动提示用户订阅通知?自动注册:true@ZameerFouzan,如果您正在使用WordPress插件,只需转到后端的插件,并选中“尝试使用本机浏览器提示自动提示新网站访问者”的切换OneSignal本身不建议这样做,因为这被视为干扰,但仍然是您的选择。我希望OneSignal在用户访问我的网站时自动提示用户订阅。怎么做?@Ankit by
autoRegister:true,
// 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;
                });
        },
    }
}]);
<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>