有没有办法通过 JavaScript 来检测 Safari 扩展是否已安装?https://extensions.apple.com有一些方法可以做到这一点,因为如果扩展已安装,他们会将安装链接更新为“已安装”。但是,我无法弄清楚他们是如何做到的。我已将其追溯到“SafariExtensionGalleryController”类型的对象,但据我所知。
苹果是否只是为了他们的东西而在扩展系统中添加了特殊的钩子?
丢失的...
谢谢,乔尔
如果您是扩展的作者,那么您可以检测是否安装了您自己的扩展。我只是将一个不可见的字符串注入到我的网站中,然后在加载页面时对其进行扫描。如果字符串已被注入,则必须安装我的扩展,然后您可以对结果执行任何您喜欢的操作。
标识符.js
if (window.top === window)
{
//detect if the extension has been installed and disable "Install" button if that's the case
if (document.title === "YOUR PAGE TITLE") //we don't want to inject the string into any website, just ours
{
var p = document.createElement("noscript");
var texto = document.createTextNode("Extension Installed");
p.appendChild(texto);
document.body.appendChild(p);
}
}
Run Code Online (Sandbox Code Playgroud)
我怀疑 Apple 使用 Safari 用来显示网站的 WebView 以编程方式执行此操作,然后在内部运行 javascript 脚本,根据 Safari 代码中返回的扩展来更改扩展网站。
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
2906 次 |
| 最近记录: |