3

現在、ローカルの HTML ファイルを から読み込む WinRT アプリを開発していますWindows.Storage.ApplicationData.Current.LocalFolder。HTML ファイルに埋め込まれている画像、音声、動画、CSS、JavaScript などのアセットを読み込む最適な方法を知りたいです。

現在、私はこれらのファイルWindows.ApplicationModel.Package.Current.InstalledLocationを現在のユーザーまたは「全員」に。

前もって感謝します。

4

1 に答える 1

9

ここで何を尋ねているのか正確にはわかりません。あるべき唯一のファイルWindows.ApplicationModel.Package.Current.InstalledLocationは、AppPackage と共にインストールされたもの、つまりアプリ配布の一部です。アプリはそこにファイルを保存するべきではありません (許可されていません)。

実行時に生成されるファイルは、保存方法に応じてWindows.Storage.ApplicationData.Current.LocalFolder、 、 、Windows.Storage.ApplicationData.Current.RemoteFolderおよびのいずれかに保存する必要があります。Windows.Storage.ApplicationData.Current.TempFolderこのルールの唯一の例外は、ユーザーがアプリの外部からでもこれらのファイルにアクセスできるようにする場合です。その場合は、それらをライブラリに配置する (そしてアクセスを要求する) か、ファイル ピッカーを使用してユーザーに場所を尋ねる必要があります。 .

編集:

ローカル HTML リソースのロードは、アプリケーションと共に配布されない限り、非常に制限されます。つまり、プロトコルInstalledLocationを介して格納およびアクセスされます。文書化ms-appx-webされているように、コントロールは、またはからデータを取得するために使用されるプロトコルをサポートしていません:WebViewms-appdataLocalStorageRemoteStorageTempFolder

さらに、WebView は ms-appx-web: スキームをサポートしていますが、ms-appdata: スキームをサポートしていません。これにより、プロジェクトにコンテンツ ファイルをロードできます。

これにより、多かれ少なかれ、C# プロジェクトのすべてのオプションが失われます。別の HTML ビューア コントロールを使用することもできますが、私が知っているのは 1 つだけで、まだ完成していません。

JavaScript では、状況はわずかに改善されています。ms-appdataプロトコルは、データ ファイルに対してのみサポートされます

インターネットからアプリのローカル ApplicationData ストレージに (Windows ランタイム API 経由で) ダウンロードしたリソースを参照すると便利な場合があります。このようなコンテンツを参照するには、スキーム "ms-appdata:" を ApplicationData ローカル ストレージ内のファイルへのパスと共に使用する必要があります。セキュリティ上の理由から、この場所にダウンロードした HTML に移動することはできず、スクリプトや CSS などの実行可能または実行可能性のあるコードを実行することはできません。画像や動画などのメディアを対象としています。

これは、次のことができることを意味します。

<img src="ms-appdata:///local/img/coal.jpg" />

だがしかし:

<iframe src="ms-appdata:///local/index.html" />

ms-appdataプロトコル構文は、まだ使用できる場合に備えて十分に文書化されています。

于 2012-11-23T05:55:16.873 に答える