1

WebView.Navigate(URI) は、uri が指す html ファイルをロードしません。PathToIndex は からStorageFile.Pathです。

private static readonly Uri HomeUri = new Uri("ms-appx-web:///" + PathToIndex, UriKind.Absolute);

ロードしたい html は、以前に解凍した Zip ファイルからのものです。
助言がありますか?

Jogyの答えへの編集:これがzipファイルを解凍した場所です:

var localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
var unpackFolder = await localFolder.CreateFolderAsync(appName+"unzip", CreationCollisionOption.ReplaceExisting);

次に、index.html パスを で保存しStorageFile.Pathます。
ms-appdata を試しましたが、 すべてのファイルを反復処理できるvalue does not fall within the expected range例外が発生します

var files = await unpackFolder.GetFilesAsync();
foreach(var file in files)
{
   string name = file.Path;
}


NavigateToString を使用すると、Html ファイルも表示されますが、javascript と css はまだ機能しません。

4

3 に答える 3

1

これはあなたを助けるでしょう... https://code.msdn.microsoft.com/windowsapps/XAML-WebView-control-sample-58ad63f7/

私の例:

StorageFolder d = await ApplicationData.Current.LocalFolder.CreateFolderAsync("folder", CreationCollisionOption.OpenIfExists);
StorageFile f = await d.CreateFileAsync("index.html", CreationCollisionOption.ReplaceExisting);
Stream str = await f.OpenStreamForWriteAsync();
using (StreamWriter sw = new StreamWriter(str))
{
  sw.Write("<html>...</html>");
}
string url = "ms-appdata:///local/folder/index.html";
webView1.Navigate(new Uri(url));
于 2015-05-17T15:52:41.970 に答える
1

ms-appx-web は、アプリケーション パッケージからリソースを読み込むためにしか使用できないため、機能しません。

ms-appdata を試した後、ドキュメントを検索したところ、次のことがわかりました。

WebView は ms-appdata スキームをサポートしていませんが、アプリ パッケージからコンテンツ ファイルを読み込むために使用できる ms-appx-web スキームをサポートしています。

回避策は、ファイルの内容を文字列で読み取り、WebView.NavigateToString() を使用することです。html の外部リソースがある場合は、NavigateToLocalStreamUri() を調べることもできます。

于 2014-09-15T14:47:51.533 に答える