当用户下载插件 firefox(例如)时,插件安装会在下载完成后立即开始。
是否有可能在 safari 中实现相同的目标?即用户点击链接下载插件,一旦下载它就会自动开始安装。
当用户下载插件 firefox(例如)时,插件安装会在下载完成后立即开始。
是否有可能在 safari 中实现相同的目标?即用户点击链接下载插件,一旦下载它就会自动开始安装。
我认为这在任何其他域上都是不可能的,除了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 的特定扩展子域中出现。
这里没有解决方案,但也许这可以帮助?
在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 在这里有帮助吗?