【发布时间】:2022-02-24 21:49:18
【问题描述】:
我正在尝试使用 MRTK 在部署到 Microsoft Hololens 2 的 Unity 应用中打开 PDF。 我想使用集成的边缘浏览器,它能够在应用程序中加载并同时运行。 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.15f
- Hololens 2 最新更新
- Win10 SDK 目标 10.0.19041.0
- 为 Hololens 构建到 ARM64
编辑: 我最终使用了
UnityEngine.WSA.Launcher.LaunchFile(folderType, relativePath, false);
【问题讨论】:
-
如果没有代码 sn-ps,我们很难缩小问题的范围,能否请您提供示例代码并告诉我们您放置 pdf 文件的路径?这个 HoloLens OS 版本和 Unity 版本也很重要,你能分享一下吗?
-
当然。我将您要求的信息添加到问题中。
-
尝试将路径分隔符从“/”更改为“\\”,反之亦然。
标签: unity3d hololens windows-mixed-reality