【问题标题】:Access MHT File from Solution Directory in Windows 8.1 App从 Windows 8.1 应用程序中的解决方案目录访问 MHT 文件
【发布时间】:2014-10-09 14:15:12
【问题描述】:

我有一个 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" 传递给Navigate 方法,如this question 推荐,但这会产生相同的异常,我从本地窗口看到传递给Navigate 方法的字符串是相同的无论哪种方式。

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

【问题讨论】:

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


    【解决方案1】:

    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

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

    【讨论】:

    • 感谢您提供有关 MHT 文件的信息。但是,在实现您的解决方案并逐步执行代码后,我发现这会在应用程序的 LocalFolder 中查找文件,并且我的文件位于项目文件夹/解决方案资源管理器中。你知道如何从那里访问文件吗?
    • 我想这就是你想要的:ApplicationData.Current.LocalFolder
    • 不,它访问与“ms-appdata:///Local”相同的文件夹,这是 URI 解析器访问的文件夹。
    猜你喜欢
    • 2016-11-01
    • 1970-01-01
    • 2016-01-24
    • 1970-01-01
    • 1970-01-01
    • 2020-05-07
    • 2013-09-28
    相关资源
    最近更新 更多