在介绍了 Longshot 的协作后,今天,我们将介绍如何通过 Protocol Launcher 与 1Writer 联动,让 iOS 上的 Markdown 文档管理变得更加高效。
作为移动办公的创作者或文档工作者,你可能经常遇到这些场景:
- 在 iOS 快捷指令中自动创建日记或笔记文档。
- 从其他应用获取文本内容,直接追加到 1Writer 的特定文档中。
- 批量替换文档中的占位符或更新文档内容。
现在,通过 Protocol Launcher ,你可以摆脱手动拼接复杂的 onewriter:// 协议链接,以类型安全的方式管理 iOS 上的 Markdown 文档。
1Writer 与深度链接
1Writer 是一款强大的 iOS Markdown 文本编辑器,支持 Dropbox、Google Drive 和 iCloud 云存储。它提供了丰富的 URL Scheme 支持,允许从快捷指令或其他应用触发创建、编辑和管理文档等操作。
然而,手动拼接这些链接需要处理 URL 编码和 x-callback-url 协议,且缺乏类型提示,极易出错。
核心能力:文档创建与内容管理
Protocol Launcher 为 1Writer 专门提供了 protocol-launcher/1writer 模块,支持以下核心功能:
- 创建文档:在指定云存储路径下创建新文档,支持预设内容。
- 打开文档:快速打开现有文档进行编辑。
- 替换内容:完全替换文档内容或替换选中的文本。
- 追加/前置内容:在文档末尾或开头添加新内容。
- 获取内容:读取文档内容并传递给其他应用。
快速上手
首先,确保你的项目中已安装:
bash
npm install protocol-launcher
在代码中你可以根据场景选择两种导入方式:
- 按需加载(通过子路径导入),支持 Tree Shaking,体积更小;
- 全量导入(从根包导入),写法更简单,但会引入所有已支持应用的逻辑。
typescript
// ✅ 推荐:按需加载 1Writer 模块
import { create, replace, append, prepend, open, content, replaceSelection } from 'protocol-launcher/1writer'
// 也可以从根包导入,但会包含所有应用模块
// import { oneWriter } from 'protocol-launcher'
场景一:创建新文档 (create)
这是最常用的功能。你可以在指定云存储路径下创建新的 Markdown 文档:
typescript
import { create } from 'protocol-launcher/1writer'
const url = create({
path: 'Dropbox/Documents', // 云存储路径,支持 Dropbox、iCloud 等
name: 'Notes.txt', // 文档名称
text: 'Hello world', // 可选:初始内容
})
生成的 URL 将在 1Writer 中创建一个新文档,适合用于快捷指令自动创建日记、笔记等场景。
场景二:打开现有文档 (open)
快速打开云存储中的文档进行编辑:
typescript
import { open } from 'protocol-launcher/1writer'
const url = open({
path: 'Dropbox/Documents/Notes.txt', // 文档完整路径
})
如果不指定路径,将直接打开 1Writer 应用。
场景三:替换文档内容 (replace)
完全替换文档的内容,适合批量更新或重置文档:
typescript
import { replace } from 'protocol-launcher/1writer'
const url = replace({
path: 'Dropbox/Documents/Notes.txt',
text: '这是新的文档内容',
})
场景四:替换选中文本 (replaceSelection)
在当前编辑的文档中替换选中的文本,适合快捷指令中的文本替换操作:
typescript
import { replaceSelection } from 'protocol-launcher/1writer'
const url = replaceSelection({
text: '替换后的文本', // 必填参数
})
场景五:追加内容 (append)
在文档末尾添加新内容,适合日志记录或累积笔记:
typescript
import { append } from 'protocol-launcher/1writer'
const url = append({
path: 'Dropbox/Documents/Diary.txt',
text: '2026-03-28:今天完成了重要项目',
})
场景六:前置内容 (prepend)
在文档开头添加内容,适合添加标题或更新记录:
typescript
import { prepend } from 'protocol-launcher/1writer'
const url = prepend({
path: 'Dropbox/Documents/Notes.txt',
text: '# 更新日志\n\n',
})
场景七:获取文档内容 (content)
读取文档内容并传递给其他应用或快捷指令:
typescript
import { content } from 'protocol-launcher/1writer'
const url = content({
path: 'Dropbox/Documents/Notes.txt',
param: 'text', // 可选:指定返回内容的参数名
})
为什么选择 Protocol Launcher?
- 自动编码与 Unicode 支持 :1Writer 的协议对参数编码有严格要求。库内部会自动处理所有的转义逻辑,确保生成的 URL 在唤起应用时绝不乱码。
- 类型安全与参数提示:TypeScript 的智能补全会确保你提供了必要的参数,并提醒你哪些是可选参数。
- 一致的用户体验:通过封装复杂的协议逻辑,你可以专注于业务功能的实现,而不用担心 iOS 快捷指令中 URL 拼接的繁琐细节。
- 极致的按需加载 (Tree Shaking) :采用了模块化设计,支持按需加载以最小化包体积:
- 推荐方式 :使用子路径导入(如
import { create } from 'protocol-launcher/1writer'),这样构建工具只会打包相关的代码。 - 全量方式 :也可以从根包导入(如
import { oneWriter } from 'protocol-launcher'),建议生产环境始终使用按需加载。
- 推荐方式 :使用子路径导入(如
- 云存储兼容:完美支持 Dropbox、Google Drive 和 iCloud,路径格式遵循 1Writer 的标准约定。
结语
通过 Protocol Launcher,你可以将 1Writer 深度集成到 iOS 自动化工作流中。无论是个人知识管理,还是团队文档协作,它都是连接 Web 服务与 iOS Markdown 编辑器最优雅的桥梁。
🔗 相关链接
- Protocol Launcher 官网:https://protocol-launcher.huayi-data.com/
- 1Writer 模块文档:1Writer | Protocol Launcher