追記: ms-appdataについての記述が間違ってたので修正しました。
はじまりは酢酸先生の一言でした。
あ、だれかWindowsストアアプリでアプリ内リソースのhtmlを表示させる方法知りませんか。NavigateToStringくらいしか思いつかなくって……
試行錯誤して私は、以下のコードをためしてみたり色々してたら…
// NG webView.Navigate(new Uri("ms-appx:///HTMLPage1.html")); // かったるい var file = await StorageFile.GetFileFromApplicationUriAsync( new Uri("ms-appx:///HTMLPage1.html")); using (var s = new StreamReader(await file.OpenStreamForReadAsync())) { webView.NavigateToString(await s.ReadToEndAsync()); }
だるやなぎさんが14分でやってくれましたよ。
2012-10-19 19:14:45 via Echofon to @ch3cooh
ちなみにドキュメント
ファイル リソースを読み込む方法 (JavaScript と HTML を使った Metro スタイル アプリ)
ということでまとめると
- ms-appx:///hogehoge/fugafuga
- アプリケーション内のリソースを指定する
- ms-appx-web:///hogehoge/fugafuga
- WebViewとかに読み込ませるのに使うURL
- ms-appdata:///local/hogehoge/fugafuga
- ApplicationData.Current.LocalFolder内のファイルを指定する
- ms-appdata:///temp/hogehoge/fugafuga
- ApplicationData.Current.TemporaryFolder内のファイルを指定する
- ms-appdata:///roaming/hogehoge/fugafuga
- ApplicationData.Current.RoamingFolder内のファイルを指定する
ややこしいですね。
とりあえず
最終的なコードはこんなにすっきり!!
webView.Navigate(new Uri("ms-appx-web:///HTMLPage1.html"));
追記内容1
間違えてました。
@okazuki 先生! ms-appdata:///hogehoge/fugafugaって指定した場合は、local/hogehgoeを見に行くんですか? LocalFolderと等価なのはms-appdata:///local/だったかと
2012-10-19 19:38:05 via OpenTween to @okazuki