4

当用户下载插件 firefox(例如)时,插件安装会在下载完成后立即开始。

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

4

2 回答 2

2

我认为这在任何其他域上都是不可能的,除了extensions.apple.com.

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

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

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

我尝试在其他网站上这样做,但它不存在:"undefined".

我也有一个疯狂的想法,它只需要扩展作为子域,所以我也在http://extensions.joomla.org上对其进行了测试,没有骰子。我似乎找不到 SSL 的扩展子域。这可能有效,但我对此表示严重怀疑,因为该方法似乎受到监管,仅在 Apple 的特定扩展子域中出现。

于 2014-03-05T00:39:07.143 回答
1

这里没有解决方案,但也许这可以帮助?

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 is undefined”,所以我猜 Safari 中特定于站点的 hack 在这里有帮助吗?

于 2013-08-17T21:20:19.750 回答