2013-11-26 79 views
3

编辑:我找到了实现Safari浏览器推送通知的解决方案,并在博客上讲述的过程:http://samuli.hakoniemi.net/how-to-implement-safari-push-notifications-on-your-website/window.safari.pushNotification.requestPermission总是返回“拒绝”

...当点击“订阅”,它应在OSX 10.9.x上为Safari 7.x启用推送通知。

推送通知适用于http://www.macrumors.com/他们实施它的地方。然而,在我自己的测试网站上,如果没有Safari甚至提示它,我总是会被拒绝作为许可的结果。

所以:我没有得到任何允许推送通知的提示,只是回拨permissionData.denied

我发现这个问题从SO类似的问题: Safari push notifications return denied without asking

但遗憾的是它并没有给我任何意见。

+0

我得到一个“Safari无法连接到服务器”的错误尝试访问https://www.hakoniemi.net/labs/push – Nick

+0

@Nick时:这听起来很“好” - 因为HTTPS:当前未在服务器上受支持。所以你真的看到了提示,并在允许你收到通知后? – zvona

+0

我想我解决了这个问题 - 由于端点不是https并且没有提供正确的内容,因此端点无效。 起初我是根据假设.requestPermission()不接触到服务器,但只有浏览器的API,它提示用户。但实际上它确实如此。 – zvona

回答

2

当请求权限时,浏览器会联系下载您网站的推送包的端点。该端点是restFUL,并且必须运行“https”。自签名SSL证书不起作用。此外,推送包必须对用户提示有效。我的建议是让日志记录端点正常工作,以便至少知道发生了什么以及它失败的位置。