1

我正在尝试从串行设备 arduino(串行监视器)读取数据。但我不希望应用程序在新窗口中打开。它应该在 chrome 选项卡中打开。

//manifest.json

{
  "manifest_version": 2,

  "name": "Serial Monitor",
  "description": "Monitors your serial port and allows you to read and write to it like you could with Arduino's IDE.",

  "version": "1.0.4",

  "app": {
         "background": {
      "scripts": ["background.js"]
    }
  },

  "icons": {
    "16": "extentionAssets/icon-16x16.jpeg",
    "128": "extentionAssets/icon-128x128.jpeg"
  },

  "permissions": [
    "tabs","serial"
  ]

}

//background.js
chrome.app.runtime.onLaunched.addListener(function() {
    chrome.app.window.create('demo.html', {
        bounds: {
            width: 1160,
            height: 960,
            left: 100,
            top: 100
        },
        minWidth: 1160,
        minHeight: 960


});
});

chrome.runtime.onSuspend.addListener(function() { 
    // Do some simple clean-up tasks.
});

chrome.runtime.onInstalled.addListener(function() { 
        // chrome.storage.local.set(object items, function callback);
});

我也使用chrome.create.tabs了功能,但它没有帮助..新标签立即打开和关闭。

4

2 回答 2

4

您似乎将 chrome 扩展程序与 chrome 应用程序混淆了。

您尝试做的事情在 chrome 打包的应用程序中是不可能的,您的清单文件似乎是 CPA 而不是扩展程序所需的文件。更重要的是,您正在使用一个 background.js 脚本,该脚本将打开一个新的 chrome 应用程序窗口,其中包含 demo.html 页面。

如果您指的是 chrome 扩展,那么您可能希望将您的问题标记为google-chrome-extension

如果不是,那么答案很简单:无法在 chrome 打包应用程序中打开标签,chrome 浏览器标签的概念不适用。

于 2013-10-24T19:24:00.910 回答
0

是的,Chrome 打包的应用程序不会在 Chrome 选项卡 ( http://developer.chrome.com/apps/about_apps.html#look ) 中打开,也无法访问 Chrome 选项卡(即无法访问 chrome.tabs API仅限于扩展)。

此外,chrome.serial API ( http://developer.chrome.com/apps/serial.html ) 仅限于打包的应用程序,不能用于扩展。要使用串行 API,您需要是一个打包的应用程序。要访问选项卡,您需要成为扩展程序。

但是,请注意,应用程序和扩展程序可以使用以下方式进行通信(如果这是您需要的):http: //developer.chrome.com/apps/runtime.html#method-sendMessage

于 2013-11-01T07:20:35.127 回答