Safari 推送通知的“无法为网站标识符 web.com.WEBSITE 注册用户,收到响应 404”错误

Posted

技术标签:

【中文标题】Safari 推送通知的“无法为网站标识符 web.com.WEBSITE 注册用户,收到响应 404”错误【英文标题】:"Could Not Register User For Website Identifier web.com.WEBSITE, received response 404" error for safari push notification 【发布时间】:2019-04-30 02:37:44 【问题描述】:

我一直在尝试在我的网站上实现 Safari 推送通知,并且它有点有效。 我测试过的版本是:

9 和 10 进入 V1 pushPackage 端点(有效) 11 和 12 进入 V2 pushPackage 端点(有效) 12.1 应该转到 V2 端点(不起作用)

弹出显示它们中的每一个(12.1 除外),我可以单击允许(手动验证到 Safari 设置,它更改为已授予)。但是,在那之后,回调函数没有运行(根据我下面的代码,它应该记录ASKED,在我点击允许后,GRANTED),它只记录ASKED,在我刷新页面后,@ 987654324@。 (我可以打印设备令牌

有趣的是,在刷新之前,它会发送一个错误日志到

https://YOUR_API/v1/logs endpoint

(是的,即使是 11 和 12,使用 V2 pushPackage 最终也会记录到 V1 错误端点)

错误日志显示

无法为网站标识符 web.com.MYSITE 注册用户, 收到响应 404

不知道是什么意思,Apple 的文档中没有。

作为参考,这是我的代码:

const checkRemotePermission = (permissionData) => 
   if (permissionData.permission === 'default') 
      console.log('ASKED')
         window.safari.pushNotification.requestPermission(
            'https://MYENDPOINT',
            'web.com.MYSITE',
            ,
            checkRemotePermission
         )
       else if (permissionData.permission === 'denied') 
           console.log('DENIED')
       else if (permissionData.permission === 'granted') 
           console.log('GRANTED')
      
   
   if ('safari' in window && 'pushNotification' in window.safari) 
      var permissionData = window.safari.pushNotification.permission('web.com.MYSITE')
      checkRemotePermission(permissionData)
   

任何想法都会非常有帮助。

【问题讨论】:

【参考方案1】:

当用户注册、更新或忘记设备权限策略时,会向以下 URL 发送 POST 或 DELETE 请求 webServiceURL/version/devices/deviceToken/registrations/websitePushID

所以这个URL必须存在才能避免这样的错误

示例 URL 如下所示 https://yoursite.com/v1|v2/devices/75DA1C150840DAB9P7130022F4BF0F0638005B152C2D26B4B65FDAF5F7FDA19D/registrations/web.com.yoursite

【讨论】:

以上是关于Safari 推送通知的“无法为网站标识符 web.com.WEBSITE 注册用户,收到响应 404”错误的主要内容,如果未能解决你的问题,请参考以下文章

Safari 推送通知

Safari 推送通知不起作用

带有 FCM 推送通知的 Safari [重复]

Safari 推送通知 - Javascript 未正确检查浏览器

网站的 OSX 推送通知 - 从未调用过 Safari requestPermission 回调

不允许 Safari 推送通知