8

私のChrome拡張機能からファイルを読み書きできるように、manifest.jsでfileSystem権限を使用する必要があります。'fileSystem'はパッケージ化されたアプリケーションに対してのみ許可されており、これは従来のパッケージ化されたアプリケーションです

私は「ロードアンパック拡張子」ボタンで自分の拡張子をロードすると、Chromeが表示されます。

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

だから、クロームのための私の拡張子はレガシーパッケージアプリです。

私の質問は、私は、ファイルシステムAPIをテストすることができますか?技術的には「パッケージアプリケーション」に「レガシーパッケージアプリ」を変換する方法でありますか実際

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

私はすでに"manifest_version": 2を使用しています:

は、ここに私のマニフェストです。

答えて

10

パッケージ化アプリケーションは、マニフェストの「アプリ」セクションに異なる構造を有しています。あなたのmanifest.jsonをはのようになります。

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

ます。また、ユーザーがアプリのアイコンをクリックしたとき、あなたのindex.htmlを開き、バックグラウンドスクリプト(このサンプルでは、​​「main.js」)必要があります:

chrome.app.runtime.onLaunched.addListener(function() { 
    chrome.app.window.create('index.html', { 
    bounds: { 
     width: 500, 
     height: 300 
    } 
    }); 
}); 
+0

より:https://developer.chrome.com/apps/about_apps.html – sowbug

+8

Googleは間違いなく、それは簡単developpersは、アプリケーションを生成するために作っていません。拡張子の間の混乱、アプリケーションやパッケージアプリケーションをホスティングされ、限られた権限など –

+3

拡張機能をアプリケーションに変更すると、 '' tabs ''は拡張機能やレガシーパッケージ化されたアプリケーションに対してのみ許可されますが、これはパッケージ化されたアプリケーションです.'、今w帽子? 'tabs'と' filesystem'パーミッションの両方を要求することも可能ですか? –

-2

は、マニフェストにこれを追加します。

"manifest_version": 2,