我有一个锚标记,选择该标记后应打开指向外部应用程序(黑曜石)的链接。这是一个示例链接:obsidian://action?param1=value¶m2=value。
我希望单击锚点可以打开外部应用程序,而无需创建窗口或选项卡。
如果可能的话,我正在尝试避免hosts_permissions。
在下面的示例中,我对“浏览器”命名空间的使用相当于 chrome 命名空间。
也许还有另一种方法或我没有想到的东西,例如能够调整提示窗口的大小?
经过更多研究,我发现
browser.tabs.update()
非常适合我的用例!它在不打开新选项卡或窗口的情况下调用深层链接,并以某种方式避免更改选项卡 URL。我认为外国协议与此有关。
在我的扩展设置中,我直接在background_script / service_worker中调用它。
示例:
async function openDeeplink(deeplink) {
const [activeTab] = await browser.tabs.query({active: true, currentWindow:true});
browser.tabs.update(activeTab.id, { url: deeplink });
}