探索一系列精彩的新模式,打造出色的应用,包括剪贴板模式、文件模式和应用模式。
无论您要构建什么(下一代视频编辑应用、令人上瘾的文字游戏还是未来的在线社交网络应用),都需要一些基本构建块:
- 视频编辑应用可能会允许用户保存已编辑的视频。
- 您的游戏可能允许用户与好友分享游戏进度。
- 在线社交网络应用很可能会允许用户将图片粘贴到帖子中。
没有通用的方法来实现这些模式
以上只是此类模式的两个示例,还有许多其他模式。但所有这些都有一个共同点:没有通用的方法来实现它们。
分享进度
例如,并非所有浏览器都实现了 Web Share API,因此在某些情况下,您必须回退到其他方法,例如 Twitter 的 Web Intent 或复制到剪贴板,这是 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 应用模式:涵盖与高级应用功能(例如提供应用快捷方式、定期在后台同步数据、显示应用标记等)相关的所有内容。
反馈
希望这些模式能帮助您构建出出色的应用,期待收到您的反馈!
您可以通过向 @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)的帮助,整个模式项目就不可能完成。