套接字API:在打包的应用程序中不允许?

时间:2012-08-15 17:55:43

标签: google-chrome google-chrome-extension google-chrome-app

我正在尝试将新的Socket API用于Chrome扩展程序,而且我遇到了一个令人困惑的错误。我的示例应用程序的清单如下所示:

{
  "name":"Yet Another Socket App",
  "version":"0.0.1",
  "manifest_version":2,
  "permissions":[
    "experimental", "socket"
  ],
  "app":{
    "launch":{
        "local_path":"index.html"
    }
  }
}

应用正在加载(即没有错误提醒),但chrome://extensions中的条目下方会显示警告:'socket' is not allowed for specified package type (theme, app, etc.).

注意: index.html存在并且是一个简单的HTML文档(其中chrome.socket确实是undefined)。我已通过chrome://flags启用了实验API。我正在Ubuntu上运行Chrome的开发频道(v22.0.1229.6 dev)。

这是套接字支持的瞬间打嗝(毕竟这是Dev通道),还是我以某种方式错误地设置了我的应用程序?另外,我不得不卸载Chrome Stable来安装Dev; apt-get purge google-chrome-stablerm -rf ~/.config/google-chrome是否有可能无法清除稳定频道的每一部分?

1 个答案:

答案 0 :(得分:3)

尝试从Google重新创建此示例时遇到了同样的问题: http://developer.chrome.com/trunk/apps/app_network.html

Chrome总是说

  

'permissions [1]'

的值无效

他们的示例App中提供了正确的清单文件: https://github.com/GoogleChrome/chrome-app-samples/tree/master/udp

permissions中的manifest.json更改为

"permissions": [
    "experimental",
    {"socket": [
        "udp-send-to"
    ]},
    "app.window"
]

我现在可以访问Chrome 版本23或更高版本中的socket对象

var socket = chrome.socket || chrome.experimental.socket;