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

相关问题