无法订阅Pushpad Safari通知

时间:2016-06-16 00:02:56

标签: safari web-push pushpad

我正在使用Pushpad.xyz库并让我的Chrome通知正常工作。在Firefox上,我调用了pushpad('不支持',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证书?谢谢!

1 个答案:

答案 0 :(得分:0)

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

当调用pushpad('subscribe')时,Safari会尝试下载"推送包"来自Pushpad服务器并验证其完整性和签名。如果发生错误(例如签名验证失败),则甚至不会要求用户授予权限,并且权限不是granted(其值仍为default)。

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

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

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

如果您在本地测试您的网站,请务必按照"Working Locally" section中所述的说明进行操作: