在标签页中打开Chrome应用

时间:2012-10-29 03:53:41

标签: javascript google-chrome google-chrome-extension google-chrome-devtools

此问题始于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中明确设置“tabs”权限,因为根据http://developer.chrome.com/extensions/tabs.html,create,update和remove方法不需要“tabs”权限。

尝试向manifest.json文件显式添加“tabs”权限后,我会在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给出的图表进行选择并选择了打包的应用,因为我的应用的用户界面不小,而且我不打算扩展Chrome的用户界面,我无法使用chrome.tabs然后如何在新的或现有的选项卡中打开我的应用程序的UI,而不必创建一个弹出窗口(这非常烦人,不方便用户)?

1 个答案:

答案 0 :(得分:8)

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