深入探索一系列适用于精彩应用的奇妙新模式,包括剪贴板图案、文件格式和应用模式。
无论您构建的是新一代视频编辑应用、令人欲罢不能的文字游戏,还是未来的在线社交网络应用,总会发现自己需要一些基本的构建基块:
- 视频编辑应用可能会允许用户保存修改后的视频。
- 您的游戏可能会允许用户与好友分享游戏进度。
- 在线社交网络应用非常有可能允许用户将图片粘贴到帖子中。
没有通用的方法来实现这些模式
这只是此类模式的几个例子,而且还有很多。但所有这些方式都有一个共性:没有通用的方法来实现它们。
正在分享进度
例如,并非所有浏览器都实现 Web Share API,因此在某些情况下,您必须改用其他方法(例如 Twitter 的网络 intent 或复制到剪贴板),这是在未实现 Web Share API 时,在 Wordle 中选择的方法。好吧,差一点才找到这个:
Wordle 471 6/6
⬛⬛⬛⬛🟨
🟩⬛⬛⬛🟨
🟩🟩🟩⬛⬛
🟩🟩🟩⬛⬛
🟩🟩🟩🟩⬛
🟩🟩🟩🟩🟩
正在保存文件
在保存方面,首选方法是使用 File System Access API,因此最终会得到 FileSystemFileHandle
,它可让您实现真正的保存、修改和保存流程。接下来最棒的是回退到传统 <a download>
,它同样可让用户保存数据,但其缺点是在每次下载时都创建新文件,因此它们最终会获得 my-video.mp4
、my-video (1).mp4
、my-video (2).mp4
等。
正在粘贴图片
在介绍性示例的前面部分,并非所有浏览器都支持将图片粘贴到 Web 应用中,因此您可以回退到使用 Drag and Drop API 或显示文件选择器,这些 API 不如 Async Clipboard API 那么简洁,但至少可以正常运行。
新模式
完成此操作后,新的模式部分将如下所示:
剪贴板图案
剪贴板模式,适用于所有与系统剪贴板有关的内容,例如复制和粘贴各种内容。
文件模式
文件模式,适用于所有与文件和目录相关的事务,包括保存、打开、拖放、接收或共享。
Web 应用模式
Web 应用模式,适用于所有与高级应用功能(例如提供应用快捷方式、定期在后台同步数据、显示应用标记等)有关的内容。
反馈
我希望这些模式能帮助您构建出色的应用,并期待收到您的反馈!
您可以通过发推文 (@ChromiumDev) 或提交问题来提供反馈。在这两种情况下,都请标记 @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)的帮助,整个模式项目不可能实现。