Chrome OS でのファイル処理

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

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

拡張機能での利用

ChromeOS 120 以降。

権限

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

マニフェスト

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

サポートされているコンテキスト

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

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

"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];
  });
}
``````