問題のセットアップ:
Windows マシンで実行されている Chrome のスタンドアロン、オフライン、キオスク モードのインスタンスがあります。システムへの完全なアクセス権とすべての管理者権限を持っています。フラグを設定または設定解除して Chrome を起動できます。
タスク:
私がコーディングしているオフラインアプリ内のユーザー アクティビティを追跡するログ ファイルを作成するように依頼されました。これは、カンマで区切られたファイルの末尾に各イベントを追加する単純な形式の分析です。ファイルは、スケジュールされたタスクを介して 1 日 1 回サーバーに送信されます。(これは私の考えではありませんので、私を荒らさないでください)
除外: 任意のサーバー側コード- Node、PHP などを求めて働きかけましたが、これは多くの異なるインストールに配布されるため、これがインストールされることを保証することはできません。Flash/ActiveX/Java - 理想的にはこれを回避したい (これらはデフォルトでインストールされますが)
考えられる解決策: ファイル API - 私はこれを見てきましたが、各ファイルにデータを保存するためにダイアログ ボックスを開く場合、これはバックグラウンドで行う必要があります。セキュリティ - セキュリティ設定を減らした場合にこれを達成できるという他の SO の質問を読みましたが、どの設定を説明する人は誰もいません。それを許可する簡単なフラグはありますか? Google chrome からローカル ファイル システムの読み書きアクセスを有効にするにはどうすればよいですか? - 同様の質問!
理想的な結果: (PHP に似たもの)
$file = 'log.txt';
$current = file_get_contents($file);
$current .= ",clicked:link";
file_put_contents($file, $current);
考えられる理想的な副次的な結果: これが不可能であることを証明し、PHP/Node/Java の使用を強制する;)
ローカルストレージを提案する人への返信: 私は一意のキーと値のペアを保存していません。これは、Cookie を設定するのと非常によく似ています。同様に、ファイルサイズの制限があります。Chrome の SQLite などの Web SQL を提案する人へ - Chrome 拡張機能でない場合、ファイル サイズの制限があります。私が動作していることを確認する唯一の方法は、Windows ディレクトリ (C:\Users\%USERNAME%\AppData\Local\Google\Chrome\User Data\Default\databases) でファイルの場所を見つけてアップロードすることです。スケジュールタスクから。完全に実行可能ですが、望ましい答えではありません。