【问题标题】:Socket API: not allowed in packaged apps?套接字 API:打包的应用程序中不允许?
【发布时间】:2012-08-15 17:55:43
【问题描述】:

我正在尝试将新的 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 的 Dev 频道 (v22.0.1229.6 dev)。

这是对套接字支持的暂时性打嗝(毕竟这是开发通道),还是我以某种方式错误地设置了我的应用程序?另外,我必须卸载 Chrome Stable 才能安装 Dev; apt-get purge google-chrome-stablerm -rf ~/.config/google-chrome 是否可能不足以清除 Stable 通道的每一块?

【问题讨论】:

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


    【解决方案1】:

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

    Chrome总是说

    “权限[1]”的值无效

    正确的清单文件在他们的示例应用程序中可用: https://github.com/GoogleChrome/chrome-app-samples/tree/master/udp

    manifest.json中的permissions更改为

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

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

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

    【讨论】:

    • 确实,我应该先看看他们的 Github 示例(我以后会这样做)。谢谢!
    • @apsillers:这种用于套接字权限的新格式上周在 Canary 上发布。样本已更改,但文档未更改。您介意在 crbug.com 中填写一个错误吗?谢谢!
    • 刚刚发现除了udp-send-to之外的其他可能的子权限:udp-bindtcp-connect
    • 谢谢@hlidka 的评论,我从昨天开始就在寻找bind udp-bind 的权限
    猜你喜欢
    • 1970-01-01
    • 2014-02-11
    • 2021-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多