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 推送通知 - Javascript 未正确检查浏览器