【问题标题】:Chrome Apps Developer Tool cca says background, fullscreen permissions not supportedChrome Apps Developer Tool cca 显示后台,不支持全屏权限
【发布时间】:2014-05-06 19:17:28
【问题描述】:

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

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(...) 创建客户端窗口),运行时抛出错误,指出这些功能/对象在前面不存在结尾。那么,在没有后台许可的情况下,我该怎么做呢?

【问题讨论】:

  • 您的问题不清楚您要达到的目标。请添加更多详细信息。
  • @Xan 完成。我添加了更多描述和清单

标签: android google-chrome-app chrome-app-developer-tool


【解决方案1】:

首先,一些命名说明:

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

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

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

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

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

【讨论】:

  • 谢谢。我确实进入下一步并在 Eclipse 中打开它,但我的模拟器说有问题。我明天再试一次。那么,我需要删除所有全屏代码吗?
  • 如果 api 不存在,您将收到运行时错误,这取决于您的应用程序,可能是个问题。您可能不想删除全屏代码,因为您希望在桌面上使用它,只需使用功能检测来跳过移动设备上的全屏调用。 (另外,请告诉我您正在使用哪些 API,我们可以考虑为移动设备编写 polyfill)。
  • 抱歉耽搁了,我会整理一个API列表告诉你。
  • 我尝试在 ios 模拟器中运行它,我得到的只是一个大白屏。我不知道如何获取调试/错误消息。我怎样才能找到问题所在?
  • 白屏通常意味着在您的chrome.app.window.create 调用完成之前出现语法错误或启动异常。您的后台脚本可能有错误,或者cca 有问题。您可以诊断那些using safari remote inspector,然后在控制台中输入chrome.runtime.reload()。如果chrome api 尚未注册(即错误确实在引导程序的早期),您可以尝试location.reload()。然后,调试您的问题,直到它们消失!
【解决方案2】:

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

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

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

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

【讨论】:

  • 我认为这个问题是特定于移动 chrome 应用程序 (cca),我正在回答。
  • 是的,@mmocny 是正确的。我指的是 chrome-to- android 工具
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-16
  • 1970-01-01
  • 2015-10-20
  • 1970-01-01
  • 2014-12-10
相关资源
最近更新 更多