正文

ISO自定义通知推送工具(自建)–Bark

免费、轻量!简单调用接口即可给自己的iPhone发送推送。
依赖苹果APNs,及时、稳定、可靠
不会消耗设备的电量, 基于系统推送服务与推送扩展,APP本体并不需要运行。
隐私安全,可以通过一些方式确保包含作者本人在内的所有人都无法窃取你的隐私。

ISO自定义通知推送工具(自建)–BarkISO自定义通知推送工具(自建)–Bark

相关链接

官网:https://bark.day.app

GitHub:https://github.com/finb/bark

后端:https://github.com/Finb/bark-server

文档:https://bark.day.app/#/tutorial

服务端自部署可参考:

https://day.app/2018/06/bark-server-document/

https://shimo.im/docs/3dQKyt9tDXj9HhWP/read

程序介绍

介绍到GitHub和官网去看吧。

Bark 是完整开源的 iOS APP,用来接收自定义推送。
bark-server 是完整开源的 Bark 服务后端,用来接收用户的推送请求并转发给苹果APNS。

常见问题

江苏移动用户提示“服务器错误,不能使用推送服务”

江苏移动存在DNS解析污染,可以更换DNS、翻墙、换网络或者更换 bark 服务器域名 https://api1.day.app ,
api1 与 api 除了域名不一样其他完全一样,是同一台服务器可以无痛切换
如果已经注册了设备,则只要保证发送端能正常访问 api.day.app 即可,APP无需连接服务器也能正常接收推送。

推送使用次数限制

正常请求(HTTP状态码为200)无任何限制。
但如果在5分钟内超过1000次错误请求(HTTP状态码为400 404 500)IP会被 BAN 24小时

时效性通知无效

可以尝试重启设备来解决。

无法保存通知历史,或下拉推送没有点击复制按钮无法复制

可以尝试重启设备来解决。
因某些原因导致推送服务扩展(UNNotificationServiceExtension)未能正常运行,执行通知保存的代码未能正常执行。

自动复制推送失效

iOS 14.5 之后的版本因权限收紧,不能在收到推送时自动复制推送内容到剪切板。
可暂时先下拉推送或在锁屏界面左滑推送点查看即可自动复制,或点击弹出的推送复制按钮。

默认打开通知历史列表

再次开启APP时,会跳转到上次打开的页面。
只需退出APP时,停留在历史消息页面,再次打开APP时就是历史消息页面。

推送 API 是否支持 POST 请求?

Bark支持 GET POST ,支持使用Json
无论哪种请求方式,参数名都一样, 参考使用教程

推送特殊字符导致推送失败,比如 推送内容包含链接,或推送异常 比如 + 变成空格

这是因为整个链接不规范导致的问题,常发生在自己手动拼接URL时。
拼接URL时,注意将参数进行URL编码

# 例如
https://api.day.app/key/{推送内容}

# 如果{推送内容}是
"a/b/c/"

# 则最后拼接的URL是
https://api.day.app/key/a/b/c/
# 将找不到对应的路由,后端程序将返回404

# 应该将 {推送内容} url编码后再进行拼接
https://api.day.app/key/a%2Fb%2Fc%2F

如果是使用成熟的HTTP库时,参数都会被自动处理,无需自己手动编码。
但如果是自己去拼接URL时,则需要特别注意参数中的特殊字符,最好不管有没有特殊字符,无脑套一层URL编码。