此问题始于 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 而不必创建弹出窗口(这很烦人且不友好)?