【问题标题】:Safari push request permission returns "denied" in SAFARI 10.0.1Safari 推送请求权限在 SAFARI 10.0.1 中返回“拒绝”
【发布时间】:2016-11-28 14:56:07
【问题描述】:

尝试为我的网站实现 Safari 推送时遇到了一个问题:单击按钮后,回调函数返回等于“拒绝”的权限,而没有任何弹出窗口出现。

下面的代码在映射为 example.com/v1/log 的控制器上执行

file_put_contents ('./files/log.txt', json_encode ($_REQUEST));

它写'[]';

我在 El capitan OS 上尝试了我在 Safari 9 中的推送,它可以很好地用于订阅和交付,所以我不知道 Safari 10 和 Sierra OS 有什么问题。

这里是 webpush.js 代码:

const websitePushID = 'web.com.example';
const webServiceUrl = 'https://example.com';
var permissionData = {};

window.addEventListener('load', function () {
    webPush.pushButton = $('.js-push-btn') || false;

    if ('serviceWorker' in navigator) {
        navigator.serviceWorker.register('/service-worker.js').then(webPush.initialiseState);
        $('.js-push-btn').on('click', function () {
            webPush.do();
        });

    } else {
        if ('safari' in window && 'pushNotification' in window.safari) {
            permissionData = window.safari.pushNotification.permission(websitePushID);
            $('.js-push-btn').on('click', function () {
                checkRemotePermission(permissionData);
            });
        }
    }
});

var checkRemotePermission = function (permissionData) {
    if (permissionData.permission === 'default') {
        try {
            console.log('default');
            window.safari.pushNotification.requestPermission(
                webServiceUrl,
                websitePushID,
                {},
                checkRemotePermission
            );
        } catch (e) {
            console.log(e);
        }
    }
    else if (permissionData.permission === 'denied') {
        console.log('denied');
    }
    else if (permissionData.permission === 'granted') {
        console.log('granted');
    }
};

dat 将“默认”写入控制台日志,然后将“拒绝”写入控制台日志

【问题讨论】:

    标签: javascript safari push-notification apple-push-notifications macos-sierra


    【解决方案1】:

    首先检查您是否使用苹果的全球关系认证 authority.cer 文件签署签名文件,该文件从 16 年 2 月 14 日起是强制性的。可能您遇到了无法提取包之类的错误。通常,如果您使用任何框架,则会出现权限错误,不允许 safari 向您发送日志端点上的日志文件。那是我的问题,当我解决这两个问题时,我认为 safari 会像魅力一样推动其所有数据!我的建议是先实现日志端点,然后你会解决任何错误。

    【讨论】:

      猜你喜欢
      • 2013-11-30
      • 1970-01-01
      • 2017-05-21
      • 2011-12-24
      • 2013-01-17
      • 1970-01-01
      • 2019-11-05
      • 2018-10-24
      • 2014-02-01
      相关资源
      最近更新 更多