2012-10-15 7 views
5

LocalStateディレクトリにあるときに、Webページに画像を読み込むことができません。Windows 8 RT - 動的に生成するHTMLは画像をレンダリングしません

具体的には、ファイルパスがLocalStateディレクトリを参照しているときにWebページを起動しようとすると、セキュリティ上の問題が発生するようです。

Webページは、HTMLファイルを右クリックしてVisual Studio内のブラウザで表示すると、画像とともに読み込まれます。

srcタグのパスをsrc = "ms-appdata:///Local/Logo.jpeg"に変更しました これは機能しません。

ヘルプ私を...

例コード

public static async Task Update(WebView webview, IStorageFile file) { 
    var html = await Windows.Storage.PathIO.ReadTextAsync(file.Path); 
    webview.NavigateToString(html); 
} 
+0

HTMLファイルをWebView要素にロードしていますか? –

+0

WebView.NavigateまたはWebView.NavigateToメソッドを使用してHTMLページをロードしていますか? –

+0

public static asyncタスクの更新(WebView Webview、IStorageFileファイル) { var html = await Windows.Storage.PathIO.ReadTextAsync(file.Path); webview.NavigateToString(html); } –

答えて

2

のlocalDataフォルダ内の画像を指すタグでは動作しませんNavigateToString方法。 (私がとにかく思い出す限り)。実際、NavigateToStringはJavaScriptとCSSのリンクも解除します。サーバー上の

画像

一つの解決策は、ネットワーク・サーバの代わりのlocalDataを指すようにソースを変更することです。私はそれがあなたのアプリのシナリオではうまくいくかどうかはわかりません。コンテンツとして

画像やHTML

2番目の選択肢は、あなたのアプリにコンテンツとしてあなたのhtmlや画像ファイルを追加し、HTMLをロードするために

WebView1.Navigate(new Uri("ms-appx-web:///assets/SampleHtmlPage.html")); 

を使用することです。

プロセスHTTPサーバで

ここで問題を処理するために、アプリでカスタムHTTPサーバを使用するソリューションです。

Loading Local HTML Content in Metro WebView (Windows 8)

ベース64符号化された画像

最後のlocalDataフォルダに画像のBase64エンコードを使用して、別の解決策があります。

internal async void MakeHtmlString() 
{ 
    StorageFile imageFile; // get image file here. 

    var html = 
    string.Format("<div><img src='data:image/png;base64,{0}'", 
        await GetImageBase64(imageFile)); 
} 

internal async Task<string> GetImageBase64(StorageFile imageFile) 
{ 
    var imageStream = await imageFile.OpenAsync(FileAccessMode.Read); 
    var inputStream = imageStream.GetInputStreamAt(0); 
    var dataReader = new DataReader(inputStream); 

    var dataResults = await dataReader.LoadAsync((uint)imageStream.Size); 
    var bytes = new byte[dataResults]; 
    dataReader.ReadBytes(bytes); 
    return Convert.ToBase64String(bytes); 
} 

この最後のアプローチは、イメージでは機能しますが、CSSファイルでは機能しません。

+0

ここにMSDNフォーラムのスレッドがあります。 http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/cbde9333-ba45-4b62-84f7-9f4c38ecbeb1 –

+0

私はあなたを愛しています!これは機能します。 –

+0

私は赤面しています。 :> –

関連する問題