以下代码可打开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
值的屏幕截图:
答案 0 :(得分:1)
您不能使用“文件/// ...”来午餐本地文件。 您应该使用启动文件功能,因为它是.html文件,它将在浏览器中打开
首先从以下位置获取IStorageFile:
然后启动您的文件:
Windows.System.Launcher.LaunchFileAsync(myStorageFile)
答案 1 :(得分:1)
根据文档:
LaunchUriAsync(Uri) 如果启动了URI方案的默认应用,则返回true;否则,返回true。否则为假。
因此必须注册一个应用程序才能处理该方案。系统中没有注册用于处理file:方案的应用程序,而是由系统本身(不是该应用程序)来处理。因此,如果考虑到这一点,它会按预期返回false。
您应该使用Launcher.LaunchFileAsync
方法。但是请注意,如果您未定义broadFileSystemAccess
功能,将无法从任意路径中获取StorageFile
作为该方法的参数来发送。