按照Apple Documentation的说明,允许具有Safari的用户访问网站并获取Apple推送通知服务的推送通知。OSX网站推送通知 - Safari requestPermission回拨从未呼叫
我正在使用SSL,拥有来自Apple的证书,并生成了推送包文件。
Safari在运行提示requestPermission
时下载此内容,显示用户权限请求提示,但在用户单击'批准'时,从不会调用回调函数。
window.safari.pushNotification.requestPermission(url, websitePushID, userInfo, callback);
- 回调函数不会被调用。
- 不引发任何异常。
- 对于任何成功或错误,不会向服务器发送POST。
- 该网站现在列在“系统首选项”>“通知”下。
- 网站是而不是在Safari Preferences中的Notifications下列出。
- 立即拒绝进一步尝试请求权限或查询权限。
重置被拒绝的权限的唯一方法是编辑OSX的内部sqllite文件并删除Safari中的一组配置文件,然后重新尝试请求。
什么可能导致这种不寻常的行为?
在调用requestPermission之前,权限处于“默认”状态,但仍不会进行回调。正在运行的代码与样本中的字面相同,只是回调函数将其参数写入控制台。我有一个苹果公司的bug报告。 – simbolo
@simbolo你有没有想过解决?我们看到了同样的事情。 – Casey
@Casey不要!我打开了许多开发人员技术支持案例,只是被告知Safari不是受支持的产品。因此,有一个开放的bug报告(#17565372),在这几个月后仍然是开放的。最后,我放弃了实施,因为它始终无法解决它为什么不起作用。一些安慰是因为我无法订阅任何其他网站,所以它不仅仅是我。我得出的结论是,在小牛队的比赛中有一些闯入Safari,并且至今仍然被打破。 – simbolo