不允许启动“<URL>”,因为需要用户手势

问题描述 投票:0回答:1

我的部分代码有问题。 我正在开发一个扩展。 我正在尝试使用我的应用程序打开链接。

var tab;
const context = chrome || browser;

if (tab.url.includes("youtube.com/watch?")) {
      context.tabs.update(tab.id, { url: "nameOfMyProgram:" + tab.url }); // Not allowed to launch 
      //'<URL>' because a user gesture is required. 
}

问题出现在opera浏览器中 第一次访问网页时,它可以正常工作。 在随后的点击中,出现错误“不允许启动”,因为需要用户手势。 这在 Chrome 浏览器中可以正常工作。我该如何解决这个问题?

我的清单中有“选项卡”权限

javascript opera
1个回答
0
投票

我在使用 Chrome 的外部处理程序时遇到了这个问题。由于 Opera 也是基于 chromium 的,因此该解决方案可能适合您,但是,Opera 似乎没有提供启用我在 gpedit 中使用的选项所需的策略文件。使用这些步骤,您也许能够弄清楚如何专门下载 Opera 的策略文件,但我自己在网上找不到它。

这是我在 Chrome 上解决问题的方法。

您需要在本地组策略编辑器中启用

Allow access to list of URLs
选项。 从此处下载 Chrome ADM/ADMX 模板 zip:https://chromeenterprise.google/browser/download/?sjid=5017331163642805921-NA#manage-policies-tab 并解压该 zip。

然后打开本地组策略编辑器。浏览至

Local Computer Policy -> Computer Configuration -> Administrative Templates
。右键单击管理模板,然后单击添加/删除模板。

从提取的 zip 文件中浏览至

GoogleChromeEnterpriseBundle64\Configuration\adm\en-US
,然后选择
chrome.adm

现在您应该在 gpedit 的管理模板文件夹中看到显示

Classic Administrative Templates
的选项。

从那里,浏览至

Classic Administrative Templates -> Google -> Google Chrome
并双击
Allow access to a list of URLs

启用该策略,然后您可以在其中输入您希望无需用户手势即可启动外部处理程序的程序名称。这是我的示例屏幕截图:

您需要从控制台日志中的错误中复制程序名称并将其输入。

我的答案是针对 Chrome 的,但我确信您是否可以找到适合您的 Opera 的 ADM 策略文件。

© www.soinside.com 2019 - 2024. All rights reserved.