我正在尝试使用MRTK在部署到Microsoft Hololens 2的Unity应用程序中打开PDF。我想使用集成的Edge浏览器,它能够在应用程序中加载并同时运行。Edge本身也能够加载PDF文件。我希望使用LaunchUri从提供的位置打开文件
public void Launch()
{
var absolutePath = Path.Combine(_myDocuments, _subfolder);
absolutePath = Path.Combine(absolutePath, _fileName);
#if UNITY_WSA
UnityEngine.WSA.Launcher.LaunchUri(absolutePath, true);
#else
Application.OpenURL(absolutePath);
#endif
}
启动Edge浏览器,以网站作为字符串,工作。手动输入文件路径到浏览器窗口加载PDF文件也工作,但通过直接提供文件的完整路径启动浏览器,不会打开任何浏览器窗口。我怀疑,它不工作,因为Edge没有设置为PDF文件的默认应用程序,但是当使用Edge中的按钮使其成为默认应用程序时,它只是告诉我它失败了,我找不到任何其他方法来实现它。有没有人知道我如何能够从Unity应用程序中加载Edge,并提供我的PDF文件的路径,以便它自动加载按下按钮?
PDF存储在本地文件系统的“文档”下。如前所述,文件是可访问的,可以通过Edge打开。使用系统文件浏览器从系统内手动打开PDF会自动使用Edge并按预期打开文件,这是我想从Unity内复制的行为。
环境
- 统一2020年3月15日f
- Hololens 2最新更新
- Win10软件开发工具包目标版本10.0.19041.0
- 为全息镜头构建ARM64
编辑:我最终使用了
UnityEngine.WSA.Launcher.LaunchFile(folderType, relativePath, false);
1条答案
按热度按时间rxztt3cl1#
您可以尝试使用Launcher.LaunchFileAsync启动带有Edge的PDF文件。此方法需要StorageFile作为参数,可通过FileOpenPicker或GetFileFromPathAsync获取该参数。
请参考下面的代码。