遵循Apple Documentation的说明,允许拥有Safari的用户访问网站并获取Apple推送通知服务的推送通知。
我使用SSL,拥有Apple的证书,并生成了推送包文件。
Safari在运行提示requestPermission
时下载此选项,显示用户权限请求提示,但在用户点击“批准”时,永远不会调用回调函数。
window.safari.pushNotification.requestPermission(url, websitePushID, userInfo, callback);
重置拒绝权限的唯一方法是编辑OSX内部sqllite文件,并在我重新发送请求之前删除Safari中的一堆配置文件。
可能导致这种异常行为的原因是什么?
答案 0 :(得分:0)
如果没有您使用的确切javascript,很难判断,但您在Apple文档中看到的3种权限类型是默认,授予和拒绝。
如果授予或拒绝权限,则用户已经设置是否要接收这些推送通知。一旦用户拒绝推送通知,Apple就会决定不再询问(不更改设置。)如果他们已经被授予权限,则无需调用window.safari.pushNotification.requestPermission
您唯一一次调用window.safari.pushNotification.requestPermission的时间是,既未拒绝也未授予权限。只有在这种情况下,您才需要调用该函数并期望响应才能触发回调函数。如果您看到权限请求提示,则表示requestPermission已生效。