Skip to content

watchOS客户端 - #375

Open
sebersta wants to merge 8 commits into
Finb:masterfrom
sebersta:watchOS-prototype
Open

sebersta wants to merge 8 commits into
Finb:masterfrom
sebersta:watchOS-prototype

Conversation

@sebersta

Copy link
Copy Markdown

新增了 BarkWatch,一个独立运行的 watchOS 应用。手表可以向 Bark 服务器注册独立的Key,不依赖 iPhone 也能收推送。

本 PR 主要用来讨论方向和收集反馈。

新增 Target

  • BarkWatch:SwiftUI 手表主应用,可以管理服务器、配置加密、查看最新一条消息。
  • BarkWatchNotificationService:手表端的通知服务扩展。基本和 iOS 端一致。
  • BarkWatchComplicationExtension:矩形表盘小组件,显示最新一条通知。
  • BarkWatchTests:Swift Testing 单元测试。

与 iOS 共用的代码

手表 Target 直接编译下面三个 iOS 文件:

  • Model/Algorithm.swift
  • Common/MarkdownParser.swift
  • Common/UIFont+Extension.swift

支持的推送参数

参数 手表端情况
title、subtitle、body、markdown 支持
ciphertext、iv 支持
level=active / passive / timeSensitive 支持
level=critical、volume 已实现,未测试
sound 只支持 silent,不支持自定义铃声
image、icon 支持
url 通知上显示「打开链接」按钮
group 用于线程分组和小组件筛选,不支持分组静音
id、isArchive、ttl、delete 支持
badge、call、autocopy/copy、action 不支持

打开链接

通知界面本身不能直接打开浏览器。点击「打开链接」或 Markdown 里的链接后,地址会交给主应用,主应用进入前台后用 WebAuthenticationSession 打开网页。这个网页是临时的,不与其他会话共享 Cookie。只接受 http / https 链接。

对现有 iOS 工程的影响

  • iOS 源代码没有任何改动。
  • project.pbxproj 新增了手表相关的 Target 和 Scheme。
  • Podfile 给 BarkWatch 和 BarkWatchNotificationService 加入了 CryptoSwift,并在 post_install 里把 watchOS 的最低部署版本设为 10.0。因为 CryptoSwift 现在同时用于 iOS 和 watchOS,CocoaPods 生成的路径变成了 CryptoSwift-iOS / CryptoSwift-watchOS。

已知限制

  • 还不能和 iPhone 应用通信或同步设置。
  • watchOS本身不支持自定义铃声、角标和自动复制。
  • Critical 级别的通知还没有测试。

@Finb

Finb commented Oct 15, 2026

Copy link
Copy Markdown
Owner

哈喽,
因为旧项目无法在 Xcode27 运行,我将当前分支的代码重新 rebase master 后强制 push 了,之后你如果需要修改代码,记得先 pull 一下。

@Finb
Finb force-pushed the watchOS-prototype branch from 27455b4 to 15aab5f Compare October 28, 2026 07:21

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants