一键安装适用于 Safari 扩展



例如,当用户下载插件Firefox时,一旦下载完成,插件安装就会开始。

是否可以在 safari 中实现相同的目标?即用户单击链接下载插件,一旦下载,它就会自动开始安装。

我认为除了

extensions.apple.com之外,这在任何其他域上都是不可能的。

我已经对此进行了一些广泛的测试,并且 safari.installExtension() 方法仅在域与 extensions.apple.com 匹配时才存在(可能由浏览器控制,类似于某些 Chrome API 仅显示在扩展程序本身中的方式)。

我通过转到JS文件本身并打开JS控制台来测试这个理论:https://extensions.apple.com/home/scripts/extensionInstall.js

加载JS

文件后,在JS控制台中键入typeof(safari.installExtension),它应该返回"function"。请注意,它存在于非 HTML 页面上,这意味着它由浏览器提供(因为此脚本不执行,其中也没有提供此方法的代码)。

我尝试在其他网站上执行此操作,但它不存在:"undefined".

我也有一个疯狂的想法,它只需要扩展名作为子域,所以我也在 http://extensions.joomla.org 上测试了它,没有骰子。不过,我似乎找不到SSL的扩展子域。这可能有效,但我严重怀疑它,因为该方法似乎被规定仅在Apple的特定扩展子域上显示。

这里没有解决方案,但也许这会有所帮助?

在 Apple 扩展库中 https://extensions.apple.com 扩展确实只需单击一下即可安装,我想在我的网站上实现相同的效果,所以我去检查了他们的 JS 源代码。

那里的javascript文件定义了一个"ExtensionOneClick"对象(https://extensions.apple.com/home/scripts/extensions.js)。

专用于安装扩展的方法:

// href : path to the extension ".safariextz" file
// id   : com.whatever.myextension-<safaridevelopper10charsid>
safari.installExtension(id, href);

我试图在我的网站上复制这个,但我得到"野生动物园未定义",所以我想 Safari 中特定于网站的黑客在这里有所帮助?

最新更新