【问题标题】:Chrome app, open link in a new tabChrome 应用,在新标签页中打开链接
【发布时间】:2014-05-05 21:18:22
【问题描述】:

我正在构建一个 chrome 应用程序,它只会在 chrome 的新标签中打开一个链接,例如“http://www.cnn.com/”。

我的 manifest.json 中有以下代码

{
  "manifest_version": 2,
  "name": "CNN",
  "version": "2.1",
  "permissions": ["webview", "pointerLock", "geolocation", "videoCapture"],
  "app": {
    "background": {
      "scripts": ["main.js"]
    }
  }
}

这就是我在 main.js 中的内容:

chrome.app.runtime.onLaunched.addListener(function() {
  chrome.app.window.create('http://www.cnn.com/', {

  });
});

我也试过了,

chrome.app.runtime.onLaunched.addListener(function() {
  chrome.app.window.create({ "url": "http://cloudsupport.neonova.net/home" });
});

还有:

chrome.app.runtime.onLaunched.addListener(function(tab) {
  chrome.app.tab.create({ "url": "http://cloudsupport.neonova.net/home" });
});

请帮忙。

谢谢

【问题讨论】:

  • 你为什么要构建一个只打开链接的应用程序?
  • 您希望页面在 chrome 打开时打开?
  • 标签权限在哪里?你不应该拥有它
  • 另外,当您运行此代码时会发生什么
  • @MuhammadUmer 我希望在启动应用程序时打开页面。我添加了选项卡权限。当我从 Chrome:Apps 双击该应用程序时,打开“Chrome:Apps”的页面将关闭,仅此而已。

标签: javascript google-chrome google-chrome-app


【解决方案1】:

无论如何,我已经尝试过window.open,它的分叉就像一个魅力:

'use strict';

chrome.app.runtime.onLaunched.addListener(function() {
    window.open("https://google.com/");
});

所以它也可能对你有用。

【讨论】:

【解决方案2】:

参考:https://developer.chrome.com/extensions/tabs#method-create

var options= { url: "http://cloudsupport.neonova.net/home" };

chrome.app.runtime.onLaunched.addListener(function() {
  chrome.tabs.create(options);
});

然后在 manifest.json 中。添加此权限。

...
"permissions": ["tabs","webview", "pointerLock", "geolocation", "videoCapture"]
...

【讨论】:

  • 似乎是更本地化的方式,但为什么需要所有这些权限(尤其是 geolocationvideoCapture)?
  • 我不知道 op 有什么...为此,您只需要标签权限,因为您正在访问 url...虽然我不确定您是否需要任何权限。但以防万一,如果需要,我会毫不犹豫地添加标签权限。还有一种权限类型叫做 activeTab
  • 我不确定如果没有运行 chrome 实例会发生什么。生病必须检查,如果没有打开窗口会发生什么......如果没有窗口,则不能有选项卡。也许代码应该检查窗口是否打开。或者如果还没有打开一个窗口,tabs.create 本身可能会打开一个窗口..
  • 请注意,chrome.tabs.create 仅适用于扩展程序或旧版打包应用程序。
【解决方案3】:

从 chrome 42 开始,chrome.browser 可能会有所帮助:

chrome.app.runtime.onLaunched.addListener(function() {
    chrome.browser.openTab({
      url: 'https://google.com/'
    });
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 2014-04-18
    • 2013-11-30
    • 1970-01-01
    • 2011-09-29
    • 1970-01-01
    相关资源
    最近更新 更多