我正在使用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证书?谢谢!
答案 0 :(得分:0)
Safari的问题肯定与下载推送包及其签名有关。
当调用pushpad('subscribe')
时,Safari会尝试下载"推送包"来自Pushpad服务器并验证其完整性和签名。如果发生错误(例如签名验证失败),则甚至不会要求用户授予权限,并且权限不是granted
(其值仍为default
)。
因此,您会看到一条奇怪的消息,指出用户未授予权限。实际上,在您的情况下,不是用户阻止通知:它的Safari拒绝订阅推送通知,因为推送包无效。
请尝试重新生成并在发送人的Pushpad 设置中修复APNS私钥和APNS证书。这应该可以解决问题。
确保完全遵循此处描述的APNS步骤: https://pushpad.xyz/docs/pushpad_pro_requirements
如果您在本地测试您的网站,请务必按照"Working Locally" section中所述的说明进行操作:
hostname
选项传递给init