应用的新模式

探索一系列精彩的新模式,打造出色的应用,包括剪贴板模式、文件模式和应用模式。

无论您要构建什么(下一代视频编辑应用、令人上瘾的文字游戏还是未来的在线社交网络应用),都需要一些基本构建块:

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

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

以上只是此类模式的两个示例,还有许多其他模式。但所有这些都有一个共同点:没有通用的方法来实现它们。

分享进度

例如,并非所有浏览器都实现了 Web Share API,因此在某些情况下,您必须回退到其他方法,例如 Twitter 的 Web Intent 或复制到剪贴板,这是 Wordle 在未实现 Web Share API 时选择的方法。呼,我好不容易才解决了这个问题:

Wordle 471 6/6

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

保存文件

在保存方面,首选方法是使用 File System Access API,以便最终获得 FileSystemFileHandle,从而实现真正的保存、修改、保存流程。次优方案是回退到传统的 <a download>,它同样允许用户保存数据,但缺点是每次下载都会创建新文件,因此最终会产生 my-video.mp4my-video (1).mp4my-video (2).mp4 等。

粘贴图片

最后,介绍一下这些入门示例:并非所有浏览器都支持将图片粘贴到 Web 应用中,因此您可以改用拖放 API 或显示文件选择器,虽然这不如 Async Clipboard API 那样优雅,但至少能正常运行。

新模式

完成上述设置后,新的模式部分如下所示:

剪贴板模式

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

文件格式

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

Web 应用模式

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

反馈

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

致谢

非常感谢 Joe Medley 在审核和修改图案方面的帮助。感谢 Pete LePageEwa GasperowiczRachel AndrewKen PascalMatthias Rohmer 在技术和组织方面提供的支持和鼓励,使我们能够顺利完成此项工作。如果没有各个模式的作者(即 Harry TheodoulouTony ConwayPalances LiaoCecilia CongFrançois BeaufortJoe Medley)的帮助,整个模式项目就不可能完成。