我正在通过阅读their documentation设置OneSignal的网络推送通知。下面的代码块是我的配置示例
<script>
var OneSignal = window.OneSignal || [];
OneSignal.push(["init", {
appId: "my-app-id",
safari_web_id: 'my-safari-web-id',
autoRegister: false,
notifyButton: {
enable: true /* Set to false to hide */
},
}]);
</script>
适用于Google Chrome和Firefox。但是在safari上不起作用,当我点击订阅通知按钮时,我得到了如下错误
我的配置有什么问题?
我使用safari版本10.0.1(12602.2.14.0.7)
答案 0 :(得分:1)
以下是在Safari上可能发生这种情况的一些原因。来自https://github.com/OneSignal/OneSignal-Website-SDK/wiki/Safari-Registration-Bug:
最有可能订购的次序:
Safari网站网址的来源必须与地址栏中的来源相匹配。即使您的hosts文件允许别名,您也必须在订阅时使用站点URL中列出的实际来源。网站网址甚至区分大小写。
safari_web_id参数必须与应用程序平台设置中的Safari Web ID相匹配。确保它没有被其他值覆盖,或者如果他们使用我们的自动生成的证书,则不会错过web.onesignal.auto前缀。
图标必须为方形(宽度等于高度)。
确保您没有在私人窗口中浏览Safari。
确保您没有在iOS上使用Safari。不支持Windows上的Safari。有些用户可能会下载Safari 5.1.7来测试推送通知,但是唯一支持的Safari是Mac OS X操作系统上的Safari 7.1+。
图标的DPI必须为72x72。
这可以使用ImageMagick检查,命令识别-format“%w x%h%x x%y”PATH_TO_FILE。
如果使用自定义证书,则可能无效。使用自动生成的证书重新创建Safari平台。请联系OneSignal。
最后,自动生成的证书可能无法正常工作。使用其他自动生成的证书重新创建Safari平台。请联系OneSignal。
答案 1 :(得分:0)
尝试在控制台中粘贴以下代码并检查错误您获得的内容
window.safari.pushNotification.requestPermission(OneSignal._API_URL + 'safari', OneSignal.config.safari_web_id, {app_id: OneSignal.config.appId}, function(response) {
console.warn('pushNotification.requestPermission Safari Registration Result:', response);
});
如果在您的控制台中显示推送通知提示已被禁用 请按照以下步骤
答案 2 :(得分:0)
您可以使用OneSignal.log.setLevel(&#39; trace&#39;);追踪你的问题。 它可能会告诉您图标缺失或p12错误等确切问题。