从Windows 8.1 App中的解决方案目录访问MHT文件

时间:2014-10-09 14:15:12

标签: vb.net webview visual-studio-2013 windows-8.1 file-access

我有一个MHT(Microsoft Web存档)文件,我已将其添加到项目文件夹中。我需要此文件显示在帮助页面上的WebView中。我已将文件的构建操作设置为"内容,"像this question推荐的那样。然后,我在页面的Loaded事件处理程序中使用此代码。

    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"传递给像this question推荐的Navigate方法,但这会产生相同的异常,我从Local窗口看到传递给{的字符串{1}}方法无论如何都是一样的。

有没有人对如何在WebView中显示此文件有任何建议?

1 个答案:

答案 0 :(得分:0)

WebView本身不支持HTML存档文件,但如果您愿意,可以将这些文件转换为html +图像。

在记事本中打开.mht文件,您将看到HTML文件的每个部分都有单独的部分 - 您可以解析这些部分以获取HTML,然后是base64编码的图像,然后保存它们位于您的本地app文件夹中,并使用WebView.NavigateToLocalStreamUri加载它们。有关如何使用此方法的详细信息,请参阅http://blogs.msdn.com/b/wsdevsol/archive/2014/06/20/a-primer-on-webview-navigatetolocalstreamuri.aspx

当然,如果它是一个你将一直使用的静态文件,那么在打包应用程序之前转换它会容易得多。