OSX推送通知网站 - 野生动物园requestPermission回调从来没有所谓的(OSX Pu

2019-10-20 09:39发布

依照指示操作,按苹果公司的文档 ,以便与Safari浏览器用户访问一个网站,并得到推送通知的苹果推送通知服务。

我使用SSL,有来自苹果的证书,并已产生了推包文件。

Safari浏览器在运行时提示下载这个requestPermission ,显示用户许可请求的提示,但在用户点击“同意”,则回调函数不会被调用。

window.safari.pushNotification.requestPermission(url, websitePushID, userInfo, callback);
  1. 回调函数不会被调用。
  2. 没有异常抛出。
  3. 没有POST是对服务器进行任何成功或误。
  4. 现在的网站是在系统首选项>通知中列出。
  5. 该网站是不是在Safari偏好内通知上市。
  6. 进一步尝试requestPermission或查询的权限会立即拒绝。

重置拒绝的权限的唯一方法是编辑OSXs内部sqllite文件和Safari浏览器中删除了一堆的配置文件之前,我可以重试请求。

这可能是造成这种不寻常的行为?

Answer 1:

很难没有你正在使用的精确JavaScript来判断,但你在苹果文件建立看到3种许可类型是默认,授予和拒绝。

如果权限被授予或拒绝,那么用户已经设置是否要接收这些推送通知。 一旦用户拒绝推送通知那么苹果已经做出了决定,他们不能再询问(不改变设置。)如果他们已经被授予的权限,不需要调用window.safari.pushNotification.requestPermission

你会打电话window.safari.pushNotification.requestPermission唯一的一次是在许可既未否认,也没有批准。 只有在这种情况下,将要调用的函数,并期望为触发回调函数的响应。 如果你看到一个许可请求的提示则表示requestionPermission工作过。



文章来源: OSX Push Notifications for Websites - Safari requestPermission callback never called