V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
finab
V2EX  ›  分享创造

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

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

    之前有发过一次
    https://www.v2ex.com/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
    谢谢~自从你分享后一直在使用,很棒~~掌声
    zpfhbyx
        18
    zpfhbyx  
       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
        21
    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   ·   实用小工具   ·   2881 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 00:06 · PVG 08:06 · LAX 16:06 · JFK 19:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.