V2Reader 是一个用 SwiftUI 开发的,在 iOS、iPadOS 和 macOS 上的 V2EX 第三方客户端。因为所有的数据都是通过访问 V2EX API 2.0 Beta 来获取的,而这份文档还在更新,有很多数据没有提供,所以 V2Reader 的功能还比较有限。之后随着 API 的更新,会有更多功能加入。
加入 Beta 版“V2Reader for V2EX” - TestFlight - Apple
iOS/iPadOS 15 以上,或者 macOS 12 Monterey 以上(使用了 Catalyst,所以 Intel Mac 也可以安装)。
主要是因为我用了很多去年 WWDC 新加入的语法,比如 AsyncImage、MainActor、task、refreshable、searchable 之类的。
有两个原因:一、这个 API 获取的内容都是 HTML 格式的,我还没有考虑用什么方式去解析,不像帖子中的内容是 Markdown 格式的,可以用 iOS 15 新引入的 AttributedString。二、这个提醒 API 还获取不到帖子的 id,暂时也没办法实现点击跳转帖子的功能。
因为 AttributedString 还没有支持 Markdown 格式的全部语法,我猜测下次 WWDC 会支持更多。
我暂时打算只使用 API 2.0 Beta,而这些数据目前还无法通过这些接口获取。当然如果需要的人很多,我之后可能会用解析网页之类的方式来实现。目前点击发帖回帖的按钮会跳转到网页版。
V2EX API 2.0 Beta 必须有 Token 才能够访问,用户需要在设置中自己创建 Token,然后复制粘贴到 App 中,App 会将 Token 放入系统的 Keychain 保存。用 Token 是否安全,可以参考站长 @Livid 在这个帖子中的回复。
站长设置了每小时最多请求 API 600次,这种情况可能是达到了限制,可以等整点后再尝试。
主页每次刷新时,每个节点都需要单独访问一次 API,主页中包含的节点过多会导致很快达到 API 请求次数的上限,目前设置的是最多5个,如果觉得不够请在 TestFlight 里反馈,我会考虑在之后的版本里调整。