有关safari配置的OneSignal Web推送通知不起作用

时间:2016-11-02 18:12:48

标签: macos safari onesignal web-push

我正在通过阅读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 Error Log

我的配置有什么问题?

我使用safari版本10.0.1(12602.2.14.0.7)

3 个答案:

答案 0 :(得分:1)

以下是在Safari上可能发生这种情况的一些原因。来自https://github.com/OneSignal/OneSignal-Website-SDK/wiki/Safari-Registration-Bug

最有可能订购的次序:

  1. Safari网站网址的来源必须与地址栏中的来源相匹配。即使您的hosts文件允许别名,您也必须在订阅时使用站点URL中列出的实际来源。网站网址甚至区分大小写。

  2. safari_web_id参数必须与应用程序平台设置中的Safari Web ID相匹配。确保它没有被其他值覆盖,或者如果他们使用我们的自动生成的证书,则不会错过web.onesignal.auto前缀。

  3. 图标必须为方形(宽度等于高度)。

  4. 确保您没有在私人窗口中浏览Safari。

  5. 确保您没有在iOS上使用Safari。不支持Windows上的Safari。有些用户可能会下载Safari 5.1.7来测试推送通知,但是唯一支持的Safari是Mac OS X操作系统上的Safari 7.1+。

  6. 图标的DPI必须为72x72。

    这可以使用ImageMagick检查,命令识别-format“%w x%h%x x%y”PATH_TO_FILE。

  7. 如果使用自定义证书,则可能无效。使用自动生成的证书重新创建Safari平台。请联系OneSignal。

  8. 最后,自动生成的证书可能无法正常工作。使用其他自动生成的证书重新创建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);
});

如果在您的控制台中显示推送通知提示已被禁用 请按照以下步骤

  1. 转到菜单Safari中的首选项
  2. 转到通知
  3. 验证允许网站请求发送推送通知的权限 已检查

答案 2 :(得分:0)

您可以使用OneSignal.log.setLevel(&#39; trace&#39;);追踪你的问题。 它可能会告诉您图标缺失或p12错误等确切问题。