5

此问题始于 Google Chrome 版本 23。当启动事件触发时,我的 Chrome 应用程序会打开一个选项卡以显示其 UI。

chrome.app.runtime.onLaunched.addListener(function() 
{
   chrome.tabs.create(
   {
      url: "../../index.html"
   });
});

此方案在 Google Chrome 版本 23 之前有效。现在运行我的应用程序时收到以下异常。

Error in event handler for 'app.runtime.onLaunched': Cannot call method 'create' of undefined TypeError: Cannot call method 'create' of undefined

在开发人员工具中检查chrome对象后,我注意到chrome.tabs未定义。

我知道我不必在 manifest.json 中明确设置“选项卡”权限,因为根据http://developer.chrome.com/extensions/tabs.html创建、更新和删除方法不需要“选项卡” “ 允许。

在尝试向 manifest.json 文件显式添加“选项卡”权限后,我在 chrome://chrome/extensions/ 上收到此应用程序的消息。

There were warnings when trying to install this extension: 'tabs' is only allowed for extensions and legacy packaged apps, and this is a packaged app.

如果我按照https://developers.google.com/chrome/web-store/docs/choosing给出的图表进行操作,并选择了一个打包的应用程序,因为我的应用程序的 UI 并不小而且我不打算扩展 Chrome 的 UI 和我无法使用chrome.tabs然后如何在新的或现有的选项卡中打开我的应用程序的 UI 而不必创建弹出窗口(这很烦人且不友好)?

4

1 回答 1

8

您是否尝试过 chrome.app.runtime.onLaunched 中的 window.open()

于 2012-11-16T13:26:24.197 回答