适配版本:HarmonyOS 5.0.0 或以上
阅读目标:构建一个可控的笔记分享机制,支持生成分享链接(二维码/文本)、设置只读/可编辑权限、访问鉴权与浏览入口设计,提升跨端协同与知识传播能力。
🧱 一、共享模式分类
模式类型 | 权限说明 |
---|---|
私人访问(默认) | 仅设备所有者可查看/编辑 |
只读分享 | 他人可查看但不可编辑 |
可编辑分享 | 他人可修改内容,保存同步 |
多人协作(未来拓展) | 绑定用户ID + 实时协同(含身份识别与回溯) |
🔐 二、共享权限结构设计
interface ShareMeta {
noteId: string
sharedBy: string
permission: 'read' | 'edit'
token: string
expiresAt: number
}
📌 可生成 share_token
,用于构建链接或二维码。默认有效期如 24 小时。
🔗 三、生成分享链接或二维码
function generateShareLink(noteId: string, permission: 'read' | 'edit') {
const token = genToken()
const meta: ShareMeta = {
noteId,
sharedBy: getDeviceId(),
permission,
token,
expiresAt: Date.now() + 24 * 3600 * 1000
}
kvStore.put(`share_meta_${token}`, JSON.stringify(meta))
return `noteapp://share/${token}`
}
📌 可将生成链接转为二维码用于扫码分享。
📥 四、他人访问入口(通过链接/二维码)
解析分享链接:
function onOpenShareLink(token: string) {
const meta = getKV(`share_meta_${token}`)
if (!meta || meta.expiresAt < Date.now()) {
showToast('链接已失效')
return
}
const noteData = loadNote(meta.noteId)
if (meta.permission === 'read') {
openViewer(noteData)
} else {
openEditor(noteData)
}
}
📌 访问者使用共享 token,获取对应权限打开笔记。
📄 五、只读/编辑视图控制差异
功能 | 只读视图 | 可编辑视图 |
---|---|---|
内容展示 | ✅ | ✅ |
修改内容 | ❌ | ✅ |
自动保存 | ❌ | ✅ |
插入段落 | ❌ | ✅ |
评论/标注 | ✅(可选开启) | ✅(完全开放) |
🛂 六、权限验证与访问记录机制(可选增强)
加入访问记录:
interface AccessLog {
token: string
accessedBy: string
accessedAt: number
}
📌 可存储访问日志,用于“最近访问分享”、“统计访问量”、“查看分享记录”等功能。
🧩 七、UI 示例(分享面板)
-
选择权限(🔘 只读 / 🔘 可编辑)
-
设置有效期(下拉选择:1小时 / 24小时 / 永久)
-
生成链接按钮 + [复制]
-
生成二维码按钮 + [保存图片]
☁️ 八、可选扩展能力建议
能力名称 | 功能说明 |
---|---|
分享密码保护 | 设置访问密码,打开链接需输入一次性验证码 |
撤销分享链接 | 删除对应 token,使其失效 |
限制设备/账号访问 | 限定可访问设备ID/用户ID,防止外泄 |
分享统计面板 | 展示访问次数、活跃访问者设备或时间段 |
✅ 九、小结
功能模块 | 实现说明 |
---|---|
链接生成与权限控制 | 生成带 token 的链接,控制只读/可编辑权限 |
多端访问兼容设计 | 他人访问链接后按权限打开视图,支持同步编辑或只读查看 |
分享记录与访问日志机制 | 存储访问行为,便于管理分享内容与后续追踪 |
UI 分享面板完整设计 | 可切换权限、设置时效、生成链接与二维码 |
📘 下一篇预告
第11篇|富文本笔记功能扩展:插入表格 + 表格单元格编辑 + 跨端渲染机制设计