再分享一下自用的小工具 Bark ,给你的 iPhone 发自定义推送 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
finab
V2EX    分享创造

再分享一下自用的小工具 Bark ,给你的 iPhone 发自定义推送

  •  
  •  
    Finb 2020-06-02 11:44:21 +08:00 8065 次点击
    这是一个创建于 1960 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前有发过一次
    t/467407
    两年来收到很多反馈想加个历史记录,这次总算加了。

    之前觉得麻烦,最近发现依赖 Github 编程工作量很少,大部分工作都有非常优秀的大佬帮你做了, 就顺手实现了。
    软件完全免费,完整开源。APP 与源码都可以随意使用,V 站的朋友们有需要的自取即可。

    简单介绍下 Bark
    Bark 提供一个 http 接口,简单调用即可给自己的 iPhone 发送推送。

    简单说下优点

    1. 稳定
      使用苹果 APNS,我自用以来没掉过通知

    2. 及时
      一般 1 秒左右就能收到推送

    3. 隐私安全
      服务端可以选择自行部署 /编译 /实现,数据将在 你的服务器-苹果 APNS-你的设备 之间传输,
      确保任何推送信息都不会被泄漏。
      通知历史记录是通过 NotificationServiceExtension 扩展,在收到推送时将推送信息保存在本地,再由个人 iCloud 同步,你的推送将只保留在你的设备与你的 iCloud 中。

    使用示例

    AppStore 链接
    https://itunes.apple.com/cn/app/bark-customed-notifications/id1403753865

    源码
    https://github.com/Finb/Bark
    https://github.com/Finb/bark-server

    使用教程
    https://github.com/Finb/Bark/blob/master/README.md

    47 条回复    2020-10-09 15:51:14 +08:00
    mritd
        1
    mritd  
       2020-06-02 11:46:15 +08:00 via iPhone
    66666 这两天看来是比较闲
    finab
        2
    finab  
    OP
       2020-06-02 11:47:03 +08:00   1
    @mritd 我可是用的周末时间!
    tonyaiken
        3
    tonyaiken  
       2020-06-02 11:52:26 +08:00
    我是用 Telegram webhook 发到 Telegram 群聊
    keventseng
        4
    keventseng  
       2020-06-02 15:12:16 +08:00   1
    终于有历史记录
    erlking
        5
    erlking  
       2020-06-02 15:25:39 +08:00
    ifttt webhook 不香吗
    likaci
        6
    likaci  
       2020-06-02 15:41:11 +08:00
    一直在用, 谢谢 lz
    star7th
        7
    star7th  
       2020-06-02 15:53:11 +08:00
    我一直都习惯用邮件收通知,所以写了个类似工具开放出去 www.v2ex.com/t/651215 不过看来用邮箱来做常用通讯手段的人还是少。
    liuzhiyong
        8
    liuzhiyong  
       2020-06-02 15:57:46 +08:00 via Android
    真羡慕那些会做手机 App 的人,这方面我就会撸 Web,JS 那一套。
    mango88
        9
    mango88  
       2020-06-02 16:04:23 +08:00
    已 star, 周末研究一下
    archean
        10
    archean  
       2020-06-02 16:15:00 +08:00   1
    不瞒您说,我用在了公司某个服务的报警中,作为主要报警手段失效后的备用渠道。
    非常感谢您制作出如此优秀的 App,多年用下来觉得非常可靠。
    想知道是否有 donate 链接?
    mztql
        11
    mztql  
       2020-06-02 16:23:16 +08:00
    哎 已经不支持 10.3 了
    luckyrayyy
        12
    luckyrayyy  
       2020-06-02 16:28:25 +08:00
    帅啊!
    alfawei
        13
    alfawei  
       2020-06-02 18:25:23 +08:00 via iPhone
    目前用 qpush
    uhian
        14
    uhian  
       2020-06-02 18:39:28 +08:00 via iPhone
    公司企业微信没开通接口前一直用这个,很棒。
    wtks1
        15
    wtks1  
       2020-06-02 18:44:33 +08:00 via Android
    @star7th 大部分邮箱都有发送限制,超了之后这邮箱就几乎废了,发邮件得输验证码
    Jackeriss
        16
    Jackeriss  
       2020-06-02 19:40:34 +08:00   1
    死忠粉来顶一个!
    zgzh
        17
    zgzh  
       2020-06-02 19:51:33 +08:00   1
    谢谢~自从你分享后一直在使用,很棒~~掌声
    justseemore
        18
    justseemore  
       2020-06-02 20:03:30 +08:00
    mark,等我换手机了 试试
    zst
        19
    zst  
       2020-06-02 20:18:49 +08:00 via Android
    想知道有没 Android 端类似的走 mi push 的
    jianzhao123
        20
    jianzhao123  
       2020-06-02 20:21:24 +08:00 via Android
    能不能整个安卓的
    lovepy
        2
    lovepy  
       2020-06-02 20:37:14 +08:00
    用过 确实不错, 不过后来想点击看历史消息发现没有 所以转用 tgbot 发消息了
    l12ab
        22
    l12ab  
       2020-06-02 20:58:52 +08:00 via iPhone
    用了很久了,非常好用。还有楼主开发的 V2 客户端
    zhzy0077
        23
    zhzy0077  
       2020-06-02 21:06:33 +08:00
    @zst
    @jianzhao123
    试试 www.pipehub.net 呢,不用 App 直接推送到微信上。
    dingdangnao
        24
    dingdangnao  
       2020-06-03 01:07:04 +08:00 via iPhone
    之前真的好用 后来 自己建了个 tgbot还能发群组改声音之类的
    diyisoft
        25
    diyisoft  
       2020-06-03 05:42:59 +08:00 via iPhone   1
    老大的工具很好,且开源。赞,谢谢。
    正在用的你的开源 V2EX 客户端来回复的消息。
    benjix
        26
    benjix  
       2020-06-03 08:17:29 +08:00 via Android
    终于有历史消息了....可惜我已经转用企业微信了
    terencehan
        27
    terencehan  
       2020-06-03 09:40:17 +08:00
    一直在用,很舒服。年前结合 bypass 抢票,nice
    kiracyan
        28
    kiracyan  
       2020-06-03 17:02:11 +08:00
    自己试着做个 server 发送消息 但是无法保存信息纪录 isarchive 也传了值没生效 但是 copy 参数生效了 没搞懂是什么原因
    finab
        29
    finab  
    OP
       2020-06-03 17:24:24 +08:00
    @kiracyan
    isarchive=1 才会保存,或者不加 isarchive 参数,默认设置下是会保存所有推送
    可以点首页第三条自动保存的测试示例测试一下
    kiracyan
        30
    kiracyan  
       2020-06-03 17:31:39 +08:00
    @finab 你的服务端没问题 我是自己写了一个服务端 试着发一下消息
    finab
        31
    finab  
    OP
       2020-06-03 17:44:28 +08:00   1
    @kiracyan 我的实现会把参数名全部转为小写
    例如 isArchive 传给 APNS 时,参数名是 isarchive 。

    iPhone 的推送扩展里的保存推送代码会相应的取 isarchive 的值。
    如果你传的是大写,可能会导致代码认为没有 isarchive 参数,就不保存了

    这种情况下,会根据 APP 设置是否默认保存推送来决定保不保存。默认这个设置是打开的

    是否你关闭了这个设置,并且传递参数时,传了 isArchive ?
    kiracyan
        32
    kiracyan  
       2020-06-03 17:50:35 +08:00
    @finab 没关 我不传也不会自动保存
    这是 json
    {
    "aps": {
    "sound": "1",
    "badge": "0",
    "alert": {
    "body": "You have a new message",
    "title": "hello"
    }
    },
    "copy": "message"
    }
    kiracyan
        33
    kiracyan  
       2020-06-03 17:51:19 +08:00
    @finab 顺便提个建议 注册设备的时候可以手动选择刷不刷新 key,
    finab
        34
    finab  
    OP
       2020-06-03 17:55:02 +08:00
    @kiracyan
    缺少了 "mutable-content":1,

    在我的实现里是这行代码
    https://github.com/Finb/bark-server/blob/19fe79ae4267957a10e389e529ce756d120f8564/server.go#L229

    这个字段的作用是推送到达设备时,会先执行推送扩展里的代码再显示推送
    保存推送和其他功能是依赖这个的
    finab
        35
    finab  
    OP
       2020-06-03 18:00:34 +08:00   1
    @kiracyan 在我的实现里,Key 注册了就不会变化了。
    因为这是一个公共服务,所以客户端不能指定 key,都由服务端分配。
    分配好后,再注册更新数据时,携带旧 key 不会再分配新 key 了。

    如果是自个的服务端,只需要拿到注册时携带的 token,key 什么的就无所谓了。
    kiracyan
        36
    kiracyan  
       2020-06-03 18:01:44 +08:00
    @finab OK 了 感谢
    v2vTZ
        37
    v2vTZ  
       2020-06-04 11:57:14 +08:00
    用了挺长时间了.是真的好用
    mq4079
        38
    mq4079  
       2020-06-04 19:59:43 +08:00
    很好用,感谢!
    programV2
        39
    programV2  
       2020-09-28 15:45:24 +08:00 via iPhone
    @finab 楼主你好,请问你的 V2EX 客户端怎么发帖子啊,我更新到最新版,没找到发帖子的地方。谢谢
    finab
        40
    finab  
    OP
       2020-09-28 18:45:16 +08:00
    @programV2 你好,没有发帖的地方 。
    littleboyzt
        41
    littleboyzt  
       2020-10-09 14:47:14 +08:00
    为什么我的 iPhoneSE 上还是无法自动复制,用的 Bark-Chrome-Extension 自动复制版
    finab
        42
    finab  
    OP
       2020-10-09 14:58:32 +08:00
    @littleboyzt
    默认没有打开自动复制,右键插件后在选项里把 AutoCopy 打开试试
    littleboyzt
        43
    littleboyzt  
       2020-10-09 15:01:58 +08:00
    @finab 还是不行
    finab
        44
    finab  
    OP
       2020-10-09 15:13:05 +08:00
    @littleboyzt
    我这边多台设备测试正常,
    你看你那边能否提供一下你手机的系统版本号,是否使用公共服务器,是否可以收到推送,推送历史记录有没有保存?
    littleboyzt
        45
    littleboyzt  
       2020-10-09 15:17:06 +08:00
    @finab iPhoneSE2,IOS 14.0.1,公共服务器,可以收到推送,历史消息里我看了下没有保存
    finab
        46
    finab  
    OP
       2020-10-09 15:42:42 +08:00
    @littleboyzt 我刚去查了查,似乎是 iOS14 调整了后台限制导致的一个问题,不清楚是 BUG 还是特性
    可能导致 UNNotificationServiceExtension 没有执行,Bark 完全使用这个扩展在本地处理推送。
    我还看到有人说似乎在 iOS14.2 解决了,只能等到时候看看了,或者你重启下试试
    littleboyzt
        47
    littleboyzt  
       2020-10-09 15:51:14 +08:00
    @finab 嗨,还真就重启大法好,现在 OK 了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1021 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 18:44 PVG 02:44 LAX 11:44 JFK 14:44
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86