2

后台权限很重要。没有它,你如何创建窗口?

chrome.app.window.create(...)

我有一个带有以下清单的应用程序:

{
    "manifest_version": 2,
    "name": "MyApp",
    "description": "MyApp",
    "version": "0.7",
    "minimum_chrome_version": "27",
    "offline_enabled": true,
    "options_page": "options.html",
    "icons": 
    {
        "16": "images/icon16.png",
        "48": "images/icon48.png",
        "128": "images/icon128.png"
    },
    "app": 
    {
        "background": 
        {
            "scripts": 
            [
                "scripts/messaging.js",
                "scripts/utils.js",
                "scripts/database.js",
                "scripts/fs.js",
                "scripts/background.js"
            ]
        }
    },
    "permissions": 
    [
        "unlimitedStorage",
        "fullscreen",
                {
            "fileSystem": 
            [
                "write"
            ]
        },
        "background",
        "<all_urls>"
    ],
    "update_url": "http://192.168.1.101/chrome/crx/updates/MyApp2.xml"
}

此应用程序显示为全屏。数据库和文件的处理,以及用户窗口的创建都是由background.js后台运行的。在常规的 Chrome 应用程序中,当我尝试添加其中一些功能(例如,chrome.app.window.create(...)创建客户端窗口的功能)时,运行时会引发错误,指出这些功能/对象在前端不存在。那么,在没有背景许可的情况下,我该如何做这些事情呢?

4

2 回答 2

4

首先,一些命名说明:

我相信您的问题是:“我有一个在桌面 Chrome 上运行的 Chrome 应用程序,它使用“背景”和“全屏”权限。当我使用cca为移动设备创建端口时,cca抱怨权限无法识别。

好吧,好消息是所有 cca应用程序总是“全屏”和“背景”。警告消息只是因为 v2 Chrome 打包应用程序不需要这些权限,因此我们错过了将它们添加到我们接受权限的白名单中。

在这种情况下,可以安全地忽略这些警告(尽管我不确定是否存在全屏 API,这可能不起作用)。当您需要我们确实不支持的权限时,这些警告很有用,比如“蓝牙”。

所以我想我的问题是:您是否尝试继续下一步以查看它是否有效?

编辑:使用最新版本的ccato npm(v 0.0.11) 如果您的应用请求这些权限,我们不应该显示警告。

于 2014-05-07T02:36:36.353 回答
2

您在权限中要求的后台权限与您的意思是不同的后台权限,根本不需要任何权限。

-> 让您的后台页面由 chrome 加载,以便您的应用可以处理事件,不需要权限。这是所有应用程序都可以做到的。

-> 让您的应用程序强制 chrome 一直运行是托管应用程序和旧版打包应用程序可以做的事情。我们正在努力让所有打包的应用程序都可以使用它,但现在还不能。这需要“后台”权限。我不认为你想要或不需要这个。

所以我会说你的错误是别的。你能提供你的 scripts/background.js 文件吗?

于 2014-05-07T00:54:36.797 回答