剪贴板同步
剪贴板同步功能基于 SyncClipboard 项目协议实现。说点啥作为 SyncClipboard 客户端,通过访问服务端的 SyncClipboard.json(以及可选的 /file/ 目录)来同步剪贴板内容,实现多设备间的剪贴板实时互通。
你可以使用以下任意一种后端作为“服务器”:
- SyncClipboard 独立服务器(SyncClipboard.Server)
- 桌面端 SyncClipboard 内置服务器
- WebDAV/网盘存储(只要支持 HTTP PUT/GET)
本项目当前主要同步 文本;当服务端推送图片/文件类型时,会在粘贴板历史或键盘上方信息栏中展示文件名,并可按需点击下载。
功能说明
剪贴板同步服务会:
- 自动上传:检测到本地剪贴板变化时,自动
PUT到服务端SyncClipboard.json - 自动下载:定期
GET服务端SyncClipboard.json,发现新内容时自动同步到本地 - 去重处理:使用内容哈希值避免重复上传相同内容
- 文件名去重:记住最近处理的文件,避免重复预览
工作原理
- 上传时使用内容 SHA-256 哈希值判断是否需要上传
- 下载时记住最近处理的文件名,避免重复处理
- 协议基于 SyncClipboard API:
PUT /SyncClipboard.json上传、GET /SyncClipboard.json拉取;若Type为Image/File,对应文件位于/file/<filename>
配置方式
基本开关
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
syncClipboardEnabled | Boolean | false | 启用剪贴板同步服务 |
在 设置 → 其他设置 → 剪贴板同步 中启用此功能。
服务器配置(SyncClipboard)
| 配置项 | 类型 | 必需 | 说明 |
|---|---|---|---|
syncClipboardServerBase | String | ✓ | 服务器基址或 SyncClipboard.json 完整地址 |
syncClipboardUsername | String | ✓ | 服务端用户名(HTTP Basic Auth) |
syncClipboardPassword | String | ✓ | 服务端密码(HTTP Basic Auth) |
服务器地址可以填写基址或完整文件地址:
- 基址示例:
https://example.com:5033/、https://dav.jianguoyun.com/dav/ - 完整地址示例:
https://example.com:5033/SyncClipboard.json
如果地址不是以 .json 结尾,应用会自动在末尾追加 /SyncClipboard.json。
注意
所有字段都会自动执行 trim() 操作去除首尾空格,请确保不要复制粘贴时带入额外空格。
自动拉取配置
| 配置项 | 类型 | 范围 | 默认值 | 说明 |
|---|---|---|---|---|
syncClipboardAutoPullEnabled | Boolean | false | 启用自动拉取 | |
syncClipboardPullIntervalSec | Int | 1-600 | 15 | 拉取间隔(秒) |
启用自动拉取后,应用会按设定间隔定期检查云端剪贴板内容。
间隔建议
- 15-30 秒:适合需要实时同步的场景
- 60-120 秒:平衡实时性和电量消耗
- 300-600 秒:低频使用场景,节省电量和流量
可用的服务器/后端
SyncClipboard 独立服务器(推荐)
SyncClipboard 提供可独立部署的服务端 SyncClipboard.Server,支持跨平台运行并与桌面/移动客户端互通。部署方式与更多说明请参考上游项目文档。
配置示例:
服务器地址:https://your-domain.com:5033/
用户名:appsettings.json 中配置的 UserName
密码:appsettings.json 中配置的 Password桌面端内置服务器
Windows/macOS/Linux 桌面客户端内置服务器功能,可在客户端设置中开启并查看地址。将该地址填入本应用即可与桌面端互通。
WebDAV 服务器(可选)
如果你希望用 WebDAV/网盘存储作为后端,只要其支持对 SyncClipboard.json 的 HTTP PUT/GET(通常为 Basic Auth),即可使用。下面给出一些常见服务的配置示例。
坚果云
坚果云是常见的 WebDAV 服务提供商,提供免费与付费套餐,具体配额与价格请以官网为准。
配置示例:
服务器地址:https://dav.jianguoyun.com/dav/
用户名:你的坚果云账号(邮箱)
密码:应用专用密码重要
坚果云不支持使用登录密码访问 WebDAV,必须在账户设置 → 安全选项 → 第三方应用管理中生成"应用密码"。
步骤:
- 登录坚果云网页版
- 进入
账户设置 → 安全选项 - 找到"第三方应用管理"
- 点击"添加应用",输入应用名称(如"说点啥")
- 生成的密码即为 WebDAV 密码
使用场景
场景一:手机与电脑间传输文本
- 在手机上复制文字到剪贴板
- 应用自动上传到服务器
- 电脑上的 SyncClipboard 客户端自动同步
- 在电脑上直接粘贴
场景二:多部手机间同步
- 在手机 A 上复制内容
- 手机 B 自动拉取并更新剪贴板
- 在手机 B 上直接粘贴
场景三:跨应用快速分享
- 在社交应用中复制链接或文本
- 切换到其他设备或应用
- 直接粘贴,无需手动传输
权限要求
剪贴板同步功能需要以下权限:
- 网络访问权限:用于连接 SyncClipboard 服务器/后端
- 读取剪贴板:检测剪贴板变化并读取内容
- 写入剪贴板:将云端内容同步到本地剪贴板
故障排查
无法连接到服务器
可能原因:
服务器地址配置错误
- 检查地址是否包含完整的协议(
https://或http://) - 检查路径是否正确(如坚果云必须以
/dav/结尾)
- 检查地址是否包含完整的协议(
用户名或密码错误
- 坚果云必须使用"应用密码",不能使用登录密码
- 检查是否有多余的空格
网络问题
- 检查设备网络连接
- 尝试在浏览器中访问配置的地址
上传失败
可能原因:
- 权限问题:账户没有写入权限
- 应用在后台,无法写入粘贴板
- 网络超时:网络不稳定或服务器响应慢
解决方法:
- 检查账户权限设置
- 清理服务器上的旧文件释放空间
- 切换到更稳定的网络环境
下载不同步
可能原因:
- 自动拉取未启用:
syncClipboardAutoPullEnabled为false - 拉取间隔过长:设置的间隔时间太长
- 应用在后台,无法写入粘贴板
解决方法:
- 启用自动拉取并适当缩短间隔
- 在系统设置中关闭应用的电池优化
- 手动触发拉取(点击设置页面的"立即同步"按钮)
