由于Apple的安全限制和所需的额外工作,尽管有WebExtensions API,但很少有开发人员愿意将Chrome扩展程序移植到Safari

2021-01-18 04:51:14

苹果在WWDC 2020上宣布,它将在Safari中支持Chrome样式的浏览器扩展(WebExtensions API)。但正如Dan指出的那样:

苹果公司以一种类似苹果公司的方式来应对这一问题。如果您要分发网络扩展程序,则必须将其包装在以Xcode设计的本机Mac应用程序中。从应用程序商店安装应用程序还将安装Web扩展程序。

该功能于去年秋天在Safari 14(Big Sur,Catalina和Mojave上)中发布,从理论上讲,基于JavaScript的扩展(适用于Chrome,Firefox,Edge和其他浏览器)的开发人员可以使用相同的代码并制作相同的代码适用于Mac上的Safari用户。

当时,在我看来,如果扩展程序开发人员不想做额外的工作来在Safari中启动并运行它,那么这一切可能一无是处:

对于运行Safari的Mac用户而言,这很容易遇到障碍,他们可以轻松地打开其他浏览器来获得该功能…。如果您想在MacOS上找到喜欢的Chrome扩展程序,则可能需要写信给开发人员并尝试说服他们。

我希望Apple能够做到这一点,而Safari可以从中获得更多的扩展库,但是在某些情况下,插件开发人员也不必担心Safari。那太可惜了。走着瞧。

答案似乎基本上是“否”,至少目前还没有。尽管有一些例外,Mac App Store的Safari扩展库似乎在很大程度上填充了Safari 14发布之前的内容。

PocketTube是针对YouTube的扩展程序,最近添加了Safari支持。 OneTab将打开的选项卡合并为一个页面。 《蓝色独木舟词典》可让您突出显示英语单词并学习怎么说

Blue Canoe Learning的Tony Andrews说,Blue Canoe很高兴将其扩展移植到Safari,这是由于能够为以前无法​​使用Mac的Mac用户提供所有Safari的能力。他告诉我:“如果您已经熟悉Apple开发人员工具和生态系统,那肯定会有所帮助。”他说,整个过程非常顺利。

Andrew Abrahamowicz是出色的图书馆扩展程序的开发人员,该扩展程序将本地图书馆的书籍可用性覆盖在亚马逊等网站上与书籍相关的页面之上。 Abrahamowicz十年来一直在开发Library Extension,尽管它尚不支持Safari,但他正在努力。

Abrahamowicz告诉我,由于Library Extension不是他的日常工作,因此他在工作上的努力是有限的-当然,支持新平台需要大量的额外工作。但是,我发现Abrahamowicz最近获得了新的M1 Mac,并开始开发Safari版本的Library Extension。除了需要使用Xcode进行设置外,Abrahamowicz还必须处理Apple应用于扩展程序的一些特定安全限制,这可能要求他实际编写一些Mac特定的代码,以便为Safari版本的Library Extension提供与它相同的功能。在其他平台上有。

我对Abrahamowicz对构建Safari扩展的兴趣感到鼓舞,但与他的交谈也突显了许多扩展开发人员可能遇到的一些障碍:时间有限,无法使用Apple硬件,不熟悉Apple的开发人员工具,Safari与某些现有的不兼容扩展开发工具,以及为了适应Apple的安全模型而需要进行一些代码更改的要求。

甚至最流行的浏览器扩展,例如Library Extension,都是在业余时间抓痒的产品。如果该人不使用Safari甚至没有使用Mac,那么很难想象他们会做更多的工作来将扩展名带给Safari用户。

以Beyond20为例,它是将D& D Beyond字符表连接到Roll20等虚拟桌面服务的出色扩展。当我想使用Beyond20时,我必须切换到Chrome或Firefox,但是当Apple去年发布公告时,我想知道是否有一天可以在Safari中使用它。

一次对Beyond20支持的访问促成了这一点。 Beyond20项目所有者Youness Alaoui写道:

不幸的是,不会发生这种情况,因为我不使用Safari,而且它不是基于铬的,因此需要额外的工作才能使其正常工作。甚至Microsoft也与我联系,要求将扩展程序添加到Edge存储中(要求零更改),我很犹豫,因为在发布时将包提交到另一个站点会产生额外的开销。

使它与Safari一起使用本身会让人头疼,我认为我永远也不会为此做好准备。抱歉!

Alaoui不愿意将其扩展名提交到Microsoft的目录中,这说明了一切-从本质上来说,这是一个充满激情的项目,需要做更多的工作,并承诺提供持续的支持。 (大概还有一个Apple开发人员帐户每年99美元的费用,这超出了许多此类项目的范围。)

好消息是,如果扩展是一个开源项目,则可能只需要一个积极的爱好者就可以在Safari上启动并运行它。用于JavaScript的Vue开发人员工具无法在Safari上使用,但有人试图获得社区资金来支付某人使其正常运行的费用。这需要一个有时间或金钱的社区,以及一个认为值得进行工作的开发人员,但这并非没有可能。

那么,最后,苹果宣布支持Safari中的WebExtensions API的最终结果是什么?这项工作正在进行中。很少有扩展程序出现在App Store中,并且其他人很有可能会按照自己的步伐发展。其他开发人员完全不为迁移到Safari所需的所有额外工作所吸引。

令我惊讶的是,如果苹果最终将Safari扩展技术引入iOS,它可以迅速推动Safari扩展技术的采用。以Mac为目标很好,但是如果他们可以以iPad和iPhone为目标,那么我们可能真的会有所帮助。

如果您喜欢这样的文章,请成为六色订户来支持我们。 订阅者可以访问独家播客,仅限会员的故事和特殊社区。