gpt4 book ai didi

javascript - Safari 推送请求权限在 SAFARI 10.0.1 中返回 "denied"

转载 作者:行者123 更新时间:2023-12-04 02:01:52 26 4
gpt4 key购买 nike

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

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

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 将“默认”和之后的“拒绝”写入控制台日志

最佳答案

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

关于javascript - Safari 推送请求权限在 SAFARI 10.0.1 中返回 "denied",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40847250/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com