深入了解新应用的出色模式的精彩合集,包括剪贴板模式、文件模式和应用模式。
无论您构建什么 - 无论是下一代视频编辑应用、令人上瘾的文字游戏还是未来的在线社交网络应用 - 您始终会发现自己需要一些基本构建块
- 视频编辑应用可能允许用户保存编辑后的视频。
- 您的游戏也许可以允许用户与朋友分享游戏进度。
- 在线社交网络应用很可能允许用户将图像粘贴到帖子中。
没有实现这些模式的通用方法
这些只是一些此类模式的示例,还有更多。但所有这些都有一个共同点:没有实现它们的通用方法。
分享进度
例如,并非所有浏览器都实现了 Web Share API,因此在某些情况下,您将不得不回退到不同的方法,例如 Twitter 的 Web Intents,或复制到剪贴板,这是 方法 在 Wordle 中选择的,当 Web Share API 未实现时。 唷,勉强搞定这个
Wordle 471 6/6
⬛⬛⬛⬛🟨
🟩⬛⬛⬛🟨
🟩🟩🟩⬛⬛
🟩🟩🟩⬛⬛
🟩🟩🟩🟩⬛
🟩🟩🟩🟩🟩
保存文件
在保存方面,首选方法是使用 File System Access API,这样您最终会得到一个 FileSystemFileHandle
,它允许您实现真正的 保存、编辑、保存流程。 次好的方法是回退到经典的 <a download>
,它同样可以让用户保存数据,但缺点是每次下载都会创建新文件,因此他们最终会得到 my-video.mp4
、 my-video (1).mp4
、 my-video (2).mp4
等。
粘贴图片
为了总结介绍性示例,并非所有浏览器都支持将图像粘贴到 Web 应用中,因此您可以回退到使用拖放 API 或显示文件选择器,这不如 Async Clipboard API 优雅,但至少它可以工作。
新模式
说完这些,新的模式部分是
剪贴板模式
剪贴板模式,适用于与系统剪贴板相关的所有内容,例如复制和粘贴各种内容。
文件模式
文件模式,适用于与文件和目录相关的所有内容;无论是保存、打开、拖放、接收还是共享。
Web 应用模式
Web 应用模式,适用于与高级应用功能相关的所有内容,例如提供应用快捷方式、定期在后台同步数据、显示应用徽章等等。
反馈
我希望这些模式能帮助您构建出色的应用,并且我期待您的反馈!您可以通过在 Twitter 上向 @ChromiumDev 发送推文或提交 Issue 来提供反馈。在这两种情况下,请标记 @tomayac
以确保我看到它。
致谢
我感谢 Joe Medley 在模式的审阅和编辑方面提供的帮助。 感谢 Pete LePage、 Ewa Gasperowicz、 Rachel Andrew、 Ken Pascal 和 Matthias Rohmer 为落地本项目提供的所有技术和组织支持与鼓励。 如果没有各个模式的作者(即 Harry Theodoulou、 Tony Conway、 Palances Liao、 Cecilia Cong、 François Beaufort 和 Joe Medley)的帮助,整个模式项目是不可能实现的。