应用的新模式

深入探索一系列适用于精彩应用的奇妙新模式,包括剪贴板图案、文件格式和应用模式。

无论您构建的是新一代视频编辑应用、令人欲罢不能的文字游戏,还是未来的在线社交网络应用,总会发现自己需要一些基本的构建基块:

  • 视频编辑应用可能会允许用户保存修改后的视频。
  • 您的游戏可能会允许用户与好友分享游戏进度。
  • 在线社交网络应用非常有可能允许用户将图片粘贴到帖子中。

没有通用的方法来实现这些模式

这只是此类模式的几个例子,而且还有很多。但所有这些方式都有一个共性:没有通用的方法来实现它们。

正在分享进度

例如,并非所有浏览器都实现 Web Share API,因此在某些情况下,您必须改用其他方法(例如 Twitter 的网络 intent 或复制到剪贴板),这是在未实现 Web Share API 时,在 Wordle 中选择的方法。好吧,差一点才找到这个:

Wordle 471 6/6

⬛⬛⬛⬛🟨
🟩⬛⬛⬛🟨
🟩🟩🟩⬛⬛
🟩🟩🟩⬛⬛
🟩🟩🟩🟩⬛
🟩🟩🟩🟩🟩

正在保存文件

在保存方面,首选方法是使用 File System Access API,因此最终会得到 FileSystemFileHandle,它可让您实现真正的保存、修改和保存流程。接下来最棒的是回退到传统 <a download>,它同样可让用户保存数据,但其缺点是在每次下载时都创建新文件,因此它们最终会获得 my-video.mp4my-video (1).mp4my-video (2).mp4 等。

正在粘贴图片

在介绍性示例的前面部分,并非所有浏览器都支持将图片粘贴到 Web 应用中,因此您可以回退到使用 Drag and Drop API 或显示文件选择器,这些 API 不如 Async Clipboard API 那么简洁,但至少可以正常运行。

新模式

完成此操作后,新的模式部分将如下所示:

剪贴板图案

剪贴板模式,适用于所有与系统剪贴板有关的内容,例如复制和粘贴各种内容。

文件模式

文件模式,适用于所有与文件和目录相关的事务,包括保存、打开、拖放、接收或共享。

Web 应用模式

Web 应用模式,适用于所有与高级应用功能(例如提供应用快捷方式、定期在后台同步数据、显示应用标记等)有关的内容。

反馈

我希望这些模式能帮助您构建出色的应用,并期待收到您的反馈! 您可以通过发推文 (@ChromiumDev) 或提交问题来提供反馈。在这两种情况下,都请标记 @tomayac,以确保能看到。

致谢

感谢 Joe Medley 帮助审核和修改模式。感谢 Pete LePageEwa GasperowiczRachel AndrewKen PascalMatthias Rohmer 提供的所有技术和组织支持和促使他们落实这项计划。如果没有个别模式的作者(即 Harry TheodoulouTony ConwayPalances LiaoCecilia CongFrançois BeaufortJoe Medley)的帮助,整个模式项目不可能实现。