2014-10-09 64 views
0

我有一個MHT(微軟網絡存檔)文件,我已經添加到我的項目文件夾。我需要該文件在幫助頁面上的WebView中顯示。我已將該文件的構建操作設置爲「內容」,如this question已建議。然後我在頁面的Loaded事件處理程序中使用此代碼。從Windows 8.1中的解決方案目錄訪問MHT文件應用程序

Try 
     Dim strHelpNavigate = Path.Combine(Windows.ApplicationModel.Package.Current.InstalledLocation.ToString(), "\MyAppsHelp.mht") 
     webHelp.Navigate(New Uri(strHelpNavigate)) 
    Catch ex As Exception 
     webHelp.NavigateToString("<html><head><style>body {font-family: segoe ui; color: white; background-color: black;}</style></head><body><h2>Sorry, the help page is currently unavailable.</h2></body></html>") 
    End Try 

此代碼生成一個例外:{"Invalid URI: The format of the URI could not be determined."}

我也試圖通過"\MyAppsHelp.mht"Navigate方法類似this question reccomended,但這會產生同樣的異常,我從該字符串傳遞本地窗口看到到Navigate方法都是一樣的。

有沒有人有關於如何在WebView中顯示此文件的任何建議?

回答

0

WebView本身不支持HTML存檔文件,但是如果您喜歡,可以將這些文件轉換爲html +圖像。

在記事本中打開.mht文件,您會看到HTML文件的每個部分都有單獨的部分 - 您可以解析這些部分以獲取HTML,然後保存base64編碼的圖像在您的本地應用程序文件夾中,並使用WebView.NavigateToLocalStreamUri加載它們。有關如何使用此方法的詳細信息,請參見http://blogs.msdn.com/b/wsdevsol/archive/2014/06/20/a-primer-on-webview-navigatetolocalstreamuri.aspx

當然,如果它是一個靜態文件,您將一直使用它,在打包應用程序之前將其轉換會更容易。

+0

感謝有關MHT文件的輸入。但是,在實現您的解決方案並逐步完成代碼之後,我發現這會查找應用程序「LocalFolder」中的文件,並且我的文件駐留在項目文件夾/ solution explorer中。你知道如何從那裏訪問文件嗎? – 2014-10-17 18:06:09

+0

我認爲這是你想要的:ApplicationData.Current.LocalFolder – 2014-10-17 19:42:36

+0

不,它訪問與URI解析器訪問的文件夾「ms-appdata:/// Local」相同的文件夾。 – 2014-10-18 02:15:17

相關問題