如何在Xamarin项目中引用Windows.System命名空间?

时间:2019-04-24 21:22:42

标签: c# xamarin uwp

我正在尝试在浏览器,acrobat或任何其他默认pdf程序中打开pdf文件。为此,我需要调用LaunchFileAsync(),并且需要引用Windows.System才能使用它。但是,这不起作用,我无法调用任何参考。

我尝试寻找特定的库或nuget包,但找不到任何东西。该文档只是告诉我要使用该名称空间,但没有说明如何添加引用。我还尝试通过调用System.Diagnostics.Process.Start(path)和一些变体来使用另一种方法,但是使用Xamarin显然不起作用。

这基本上是我要实现的内容,但是虽然我确实尝试过实现,但没有找到命名空间事件。

string uriToLaunch = @"file://" + @file;


var uri = new Uri(uriToLaunch);


var success = await Windows.System.Launcher.LaunchUriAsync(uri);

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

您是否尝试过在“参考”菜单中添加部件参考? 在解决方案资源管理器中,右键单击您的项目,然后转到:

Add -> Reference -> Assemblies -> System.*

此外,请确保不要将平台特定的库用于移动项目,因为这可能会导致兼容性问题。 .NET Standard是必经之路。

答案 1 :(得分:0)

使用Xamarin.Essentials,因为它为您定义了各种操作系统依赖关系;在UWP上,使用本机Windows.System.Launcher.LaunchUriAsync

 Xamarin.Essentials.Launcher.OpenAsync

re:Xamarin Docs

注意:在UWP中,打开基于file://的URI非常受限制。

答案 2 :(得分:0)

如果您尚未定位.NET Standard,请确保您要使用系统库。有一些有关此的教程,但是我强烈建议您在从PCL更改为.NET Standard之前备份您的项目