1

我正在使用 Pushpad.xyz 库并让我的 Chrome 通知正常工作。在 Firefox 上,我调用 pushpad('unsupported', callbackFunction) 并且 callbackFunction 成功执行(另一个我正在单独解决的错误,因为应该支持 Firefox)。但是,我无法让 Safari 通知正常工作。我按照https://pushpad.xyz/docs/pushpad_pro_requirements中的要求输入了我的 Apple 开发人员证书。

pushpad('init', projectID);
pushpad('uid', signature);
pushpad('subscribe', function(isSubscribed) { alert(isSubscribed); });

pushpad('unsupported', function() { alert('Unsupported browser'); });

在 Safari 上,我没有收到不支持的回调,并且文档说支持 Safari。为什么它说用户(我)已经阻止了这个网站的通知?对“状态”的回调总是返回 false。有没有办法验证我是否正确设置了我的 Apple 证书?谢谢!

4

1 回答 1

0

Safari 的问题肯定与推送包的下载及其签名有关。

何时pushpad('subscribe')调用 Safari 尝试从 Pushpad 服务器下载“推送包”并验证其完整性和签名。如果发生错误(例如签名验证失败),则甚至不会要求用户获得许可,也不会要求许可granted(其值保持不变default)。

因此,您会看到一条奇怪的消息,指出用户未授予权限。实际上,在您的情况下,阻止通知的不是用户:是 Safari 拒绝订阅推送通知,因为推送包无效。

请尝试在 Pushpad 的发件人设置中重新生成并修复 APNS 私钥和 APNS 证书。这应该可以解决问题。

确保完全遵循此处针对 APNS 描述的步骤: https ://pushpad.xyz/docs/pushpad_pro_requirements

如果您在本地测试您的网站,请确保按照“本地工作”部分中的说明进行操作:

于 2016-06-18T09:33:32.073 回答