'файловая система' разрешена только для упакованных приложений, и это устаревшее упакованное приложение.

Мне нужно использовать разрешение файловой системы в manifest.js, чтобы я мог читать / записывать файлы из моего расширения Chrome.

Когда я загружаю свое расширение с помощью кнопки «Загрузить распакованное расширение», Chrome отображает:

'fileSystem' is only allowed for packaged apps, and this is a legacy packaged app.

Итак, для Chrome мое расширение - это устаревшее пакетное приложение.

У меня вопрос: как технически преобразовать «устаревшее упакованное приложение» в «упакованное приложение», чтобы я мог протестировать API файловой системы?

Вот мой манифест:

{
 "name": "MyApp",
 "version": "1.0",
 "manifest_version": 2,
  "app": {
  "launch": {
  "local_path": "index.html"
  }
 },
 "icons": {
 "128": "favicon.ico"
 },
  "permissions" : [
    "fileSystem"
  ]
}

Действительно я уже использую "manifest_version": 2.


person Stephaneuh    schedule 23.04.2013    source источник


Ответы (2)


Упакованные приложения имеют другую структуру в разделе «приложение» манифеста. Ваш manifest.json будет примерно таким:

{
  "name": "MyApp",
  "version": "1.0",
  "manifest_version": 2,
  "app": {
    "background": {
      "scripts": [
        "main.js"
      ]
    }
  },
  "icons": {
    "128": "favicon.ico"
  },
  "permissions": [
    "fileSystem"
  ]
}

и вам также понадобится фоновый скрипт ("main.js" в этом примере), который открывает ваш index.html, когда пользователь щелкает значок приложения:

chrome.app.runtime.onLaunched.addListener(function() {
  chrome.app.window.create('index.html', {
    bounds: {
      width: 500,
      height: 300
    }
  });
});
person mangini    schedule 24.04.2013
comment
Google определенно не облегчает разработчикам создание приложений: путаница между расширениями, размещенными приложениями и упакованными приложениями, ограниченные разрешения и т. Д. - person Augustin Riedinger; 26.11.2014
comment
Если я изменю расширение на приложение, я получу 'tabs' is only allowed for extensions and legacy packaged apps, but this is a packaged app., что теперь? Возможно ли вообще потребовать разрешения tabs и filesystem? - person Tony Bogdanov; 13.02.2016
comment
@AugustinRiedinger, Google действительно облажался. Им следовало изобрести одно, а не четыре: расширения, размещенные приложения, упакованные приложения, PPAPI. - person Pacerier; 18.08.2016
comment
Это просто тупица. Я пытаюсь сбросить URL-адреса из моей истории просмотров в файл (слишком длинный для URI данных) в течение нескольких часов. Если я превращаю свой код в упакованное приложение, оно жалуется, что history можно использовать только из расширений и устаревших приложений. Это запах двух расширений, которые разговаривают друг с другом. - person polkovnikov.ph; 16.10.2016
comment
Я считаю, что этот API сейчас доступен только как устаревший API - person matanster; 27.01.2019
comment
@TonyBogdanov вы придумали решение? Я ищу то же самое. - person Rodrigo Ruiz; 01.07.2020
comment
@RodrigoRuiz Мне очень жаль, но я не помню, это было 7 лет назад, но, как мне кажется, я либо сдался, либо переосмыслил всю свою структуру / идею. - person Tony Bogdanov; 02.07.2020

Добавьте это в свой манифест:

"manifest_version": 2,
person Ahi Tuna    schedule 23.04.2013