2012-07-07 78 views
4

当用户下载插件firefox时(例如),下载完成后立即开始插件安装。Safari浏览器扩展的一键安装

safari中可以实现同样的功能吗?即用户点击链接下载插件,一旦下载插件自动开始安装。

回答

2

我不认为这是可能的,除了extensions.apple.com以外的任何其他域。

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

,我首先要JS文件本身,并打开JS测试控制台这一理论:即JS文件已加载 https://extensions.apple.com/home/scripts/extensionInstall.js

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

我试过在其他网站上做这个,它不存在:"undefined"

我也有一个疯狂的想法,它只需要扩展作为子域,所以我在http://extensions.joomla.org也测试过它,没有骰子。我似乎无法找到SSL的扩展子域。这可能会起作用,但我认真地怀疑它,因为这种方法似乎只是在苹果的特定扩展子域中才显示出来。

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是不确定的”,所以我想在Safari网站特定的黑客在这里帮助?

+0

非常有趣,我会深入苹果扩展站点,看看我能找到什么。 – opsb 2013-08-19 06:42:49