尝试为我的网站实施Safari推送我遇到了一个问题:点击按钮后,回调函数返回等于“被拒绝”的权限,没有任何弹出窗口外观。
以下代码在映射为example.com/v1/log
的控制器上执行file_put_contents ('./files/log.txt', json_encode ($_REQUEST));
它写'[]';
我尝试在El Capitan OS上使用Safari 9进行推送,它适用于订阅和发送,所以我不知道Safari 10& S的问题是什么。 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写入'default',然后'拒绝'到控制台日志
答案 0 :(得分:0)
首先检查您是否使用Apple的全球关系cerification authority.cer文件签署签名文件,该文件是从2016年2月14日起强制执行的。可能你得到一个错误,如无法提取包。通常,如果您使用任何框架,则会出现权限错误,该错误不允许safari在日志的端点上向您发送日志文件。这是我的问题,当我解决这两个问题时,safari将其所有数据推向了一个魅力!我的建议首先实现日志端点然后你将解决任何错误。