Chrome Apps Developer Tool cca говорит фон, полноэкранные разрешения не поддерживаются

Фоновое разрешение очень важно. Без этого, как вы создаете окно?

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(...) это то, что создает окно клиента), среда выполнения выдавала ошибку, говоря, что эти функции / объекты не существуют во внешнем интерфейсе. Итак, без разрешения фона, как я делаю эти вещи?

2 ответа

Решение

Во-первых, некоторые уточнения именования:

  • cca это имя инструмента командной строки, которое вы можете использовать для переноса Chrome Packaged Apps на гибридные мобильные приложения для Android и iOS, используя Apache Cordova.
  • Chrome Apps Developer Tool настольное приложение Chrome, которое управляет установленными пакетными приложениями Chrome. Это также инструмент, который вы используете для загрузки приложений Chrome для разработки. (в качестве альтернативы, вы можете использовать chrome://extension URL, который был старый способ сделать это).
  • Также есть Chrome Apps Developer Tool for Mobile которая сильно отличается от настольной версии, но также является инструментом для загрузки приложений Chrome для разработки.

Я считаю, что ваш вопрос: "У меня есть приложение Chrome, которое работает на Desktop Chrome, и оно использует разрешения" фон "и" полноэкранный ". Когда я использую cca создать порт для мобильных устройств, cca жалуется, что разрешения не признаются ".

Что ж, хорошая новость в том, что все cca приложения всегда "полноэкранные" и "фоновые". Это предупреждающее сообщение только потому, что пакетным приложениям Chrome v2 эти разрешения не требуются, и поэтому мы пропустили добавление их в наш белый список принятых разрешений.

Предупреждения в этом случае безопасно игнорировать (хотя я не уверен, что существует полноэкранный API, который, скорее всего, не будет работать). Эти предупреждения полезны, когда вам требуется разрешение, которое мы на самом деле еще не поддерживаем, скажем, типа "блютуз".

Поэтому я думаю, что мой вопрос: вы пытались перейти к следующему шагу, чтобы посмотреть, сработало ли это?

Изменить: с последней версией cca в npm (v 0.0.11) мы не должны показывать предупреждения, если ваше приложение запрашивает эти разрешения.

Фоновое разрешение, которое вы запрашиваете в своих разрешениях, отличается от фонового разрешения, которое вы имеете в виду, и вообще не требует никакого разрешения.

-> Чтобы позволить фоновой странице загружаться Chrome, чтобы ваше приложение могло обрабатывать события, не нужно разрешение. Это то, что могут делать все приложения.

-> Заставить ваше приложение постоянно запускать Chrome - это то, что могут делать размещенные приложения и унаследованные упакованные приложения. Мы работаем над тем, чтобы сделать это доступным для всех упакованных приложений, но пока они не могут. Это требует разрешения "фона". Я не думаю, что вы хотите или нуждаетесь в этом.

Так что я бы сказал, что ваша ошибка - это нечто другое. Можете ли вы предоставить свой файл scripts/background.js?

Другие вопросы по тегам