UWP C#:从本地磁盘打开HTML文件到默认浏览器

时间:2019-03-05 20:04:57

标签: c# uwp

以下代码可打开online URL。但是它不适用于HTML file中的网页(local disk):

问题:看来我在这里丢失了一些东西。如何从本地驱动器为html文件制作该文件?

注意:不返回错误,仅返回success变量的值 false。我已经通过手动成功打开HTML文件来验证了该文件的存在。

async void DefaultLaunch()
{
   // The URI to launch. NOTE: It works only for online URLs, http://www.bing.com etc.
   var uriTest = new Uri(@"file:///C:/DotNET2017/Test.html");

    // Launch the URI
    try
    {
        var success = await Windows.System.Launcher.LaunchUriAsync(uriTest);
    }
    catch(Exception ex)
    {
        string st = ex.Message;
    }
}

在调试模式下uriTest值的屏幕截图

enter image description here

2 个答案:

答案 0 :(得分:1)

您不能使用“文件/// ...”来午餐本地文件。 您应该使用启动文件功能,因为它是.html文件,它将在浏览器中打开

首先从以下位置获取IStorageFile:

GetFileFromPathAsync

然后启动您的文件:

Windows.System.Launcher.LaunchFileAsync(myStorageFile) 

答案 1 :(得分:1)

根据文档:

  

LaunchUriAsync(Uri)   如果启动了URI方案的默认应用,则返回true;否则,返回true。否则为假。

因此必须注册一个应用程序才能处理该方案。系统中没有注册用于处理file:方案的应用程序,而是由系统本身(不是该应用程序)来处理。因此,如果考虑到这一点,它会按预期返回false。

您应该使用Launcher.LaunchFileAsync方法。但是请注意,如果您未定义broadFileSystemAccess功能,将无法从任意路径中获取StorageFile作为该方法的参数来发送。