首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pushpad:订阅提示仅在用户第一次单击chrome上的enable按钮时才出现

Pushpad:订阅提示仅在用户第一次单击chrome上的enable按钮时才出现
EN

Stack Overflow用户
提问于 2018-11-07 12:03:58
回答 1查看 72关注 0票数 0

你好

我已经核对了PushPad:在站点刷新后删除订阅问题的答案,但这对我没有帮助。

我在文档之后创建了一个订阅/取消订阅按钮,每次我点击订阅按钮时,提示都会出现在火狐上,所以我想我的流程是正确的,但我不明白为什么它不能在Chrome =>上工作--提示只是在我第一次启动Chrome时才显示。

以下是我所做的

代码语言:javascript
复制
pushpad('init', #projectID);
var pushId = $("#main").data("pushid");
var pushSig = $("#main").data("pushsig");

var updateButton = function (isSubscribed) {
    var btn = $('#activate-push-notif');
    if (isSubscribed) {
        btn.html('Unsubscribe');
        btn.addClass('subscribed');
    } else {
        btn.html('Subscribe');
        btn.removeClass('subscribed');
    }
};
// check whether the user is subscribed to the push notifications and
// initialize the button status (e.g. display Subscribe or Unsubscribe)
pushpad('status', updateButton);

// when the user clicks the button...
$('#activate-push-notif').on('click', function (e) {
    e.preventDefault();

    // if he wants to unsubscribe
    if ($(this).hasClass('subscribed')) {
        pushpad('unsubscribe', function () {
            updateButton(false);
        }, {
            uid: pushId,
        });

        // if he wants to subscribe
    } else {
        // try to subscribe the user to push notifications
        pushpad('subscribe', function (isSubscribed) {
            if (isSubscribed) {
                updateButton(true);
            } else {
                updateButton(false);
                alert('You have blocked notifications from your browser preferences.');
            }
        }, {
            uid: pushId,
            uidSignature: pushSig
        });
    }
});

谢谢你帮我弄清楚。

EN

回答 1

Stack Overflow用户

发布于 2018-11-07 13:35:40

  1. 确保将所有代码包装在$(function () { ... }中,以便在页面完全加载时运行代码,否则单击处理程序可能无法正常工作。
  2. 可能重点是当您看到Firefox提示符时,单击“now”(而不是隐藏在菜单下的“永远不允许”)。这就是为什么您可以多次看到提示符。在其他浏览器中,比如Chrome,默认的选项是" block“(这是一个永久的块,比如”从不允许“)。
  3. 当用户阻止通知时,由于浏览器限制,您无法再次显示浏览器提示.然而,有一些替代的解决办法。例如,您可以根据需要多次显示自定义提示符,然后只有当用户对您的自定义提示符说是时才显示浏览器提示符。见这个例子。否则,只能向阻止通知的用户显示提示,请求取消阻止通知。见这个例子。另一种选择是在页面中显示一个按钮,允许用户在决定这样做时订阅通知。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53189110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档