Safari Extensions的单击安装

时间:2012-07-07 12:53:32

标签: safari install safari-extension

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

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

2 个答案:

答案 0 :(得分:2)

除了extensions.apple.com之外,我不认为这可以在任何其他域上进行。

我已经对此进行了一些广泛的测试,只有当域名与extensions.apple.com匹配时,才会出现safari.installExtension()方法(可能由浏览器控制,类似于某些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的特定扩展子域上显示出来。

答案 1 :(得分: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中的网站特定黑客在这里有帮助吗?