Chrome OS でのファイル処理

ファイル処理機能を使用すると、拡張機能でファイル メニューの [開く] メニューまたはコンテキスト メニューの [開く] メニューを使用してファイルを開くことができるように ChromeOS を設定できます。開いたら、ウェブ プラットフォームの Launch Handler API を使用してファイルのデータを処理します。その後、標準のウェブ プラットフォーム API を使用してファイルを表示または処理します。

ChromeOS の [開く] メニューに追加されたファイル ハンドラ。
ChromeOS の [開く] メニューに追加されたファイル ハンドラ

拡張機能の可用性

ChromeOS 120 以降。

権限

ファイルの処理に権限は必要ありません。

マニフェスト

manifest.json ファイルに "file_handlers" 配列を追加する必要があります。

サポート コンテキスト

この API は、拡張機能 Service Worker、ポップアップ、サイドパネル、コンテンツ スクリプトで使用できます。

ファイル ハンドラを構成する

"file_handlers" の各メンバー(個々のファイル ハンドラ)は、特定の拡張機能ページで処理するファイル形式を指定します。

指定したハンドラは、ChromeOS の [ファイル] ウィンドウ([開く] メニューと [アプリで開く] メニュー)に追加されます。ユーザーが特定の拡張子のファイルを選択した場合にのみ、これらのメニューに表示されます。たとえば、ファイル ハンドラで .txt を指定した場合、ChromeOS メニューには、その拡張子のファイルが選択されたときにのみそのハンドラが表示されます。

ファイルを処理する

ファイル ハンドラは拡張機能に含まれる HTML ファイルです。ユーザーがメニューからハンドラを選択すると、新しいタブで HTML ファイルが開きます。ファイルの処理は、表示する場合も他の方法で使用する場合でも、適切なウェブ プラットフォーム API を使用して JavaScript で行われます。処理コードは別の JavaScript ファイルに含め、<script> タグで含める必要があります。また、拡張機能にも含める必要があります。スクリプト ファイルは、Launch Handler API の LaunchQueue インターフェースを使用して FileSystemFileHandle オブジェクトを取得します。

次の例は、LaunchQueue インターフェースを使用して FileSystemFileHandle オブジェクトを取得する方法を示しています。ファイル処理の動作を確認するには、ファイル処理のデモをインストールしてください。

if ('launchQueue' in window) {
  launchQueue.setConsumer(async launchParams => {
    if (!launchParams.files || !launchParams.files.length) { return; }
    const fileHandle = launchParams.files[0];
  });
}
``````