提供 pdf 文件路径时,Unity 不会在 Hololens 2 上打开 Edge 浏览器

Unity does not open the Edge Browser on a Hololens 2 when providing a pdf file path

我正在尝试使用 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 浏览器,有效。在浏览器中手动输入文件路径 window 以加载 pdf 也可以,但是通过直接提供我的文件的完整路径来启动浏览器,不会打开任何浏览器 window。 我怀疑它不起作用,因为 Edge 没有设置为 PDF 文件的默认应用程序,但是当使用 Edge 中的按钮将其设置为默认应用程序时,它只是告诉我它失败了,我找不到任何其他方式来实现这一目标。 有没有其他人知道我如何能够从 Unity 应用程序中加载 Edge 并提供我的 pdf 文件的路径以便它在按下按钮时自动加载?

PDF 存储在本地文件系统的“文档”下。 如前所述,该文件是可访问的,并且可以由 Edge 打开。使用系统文件浏览器从系统中手动打开 PDF,系统会自动使用 Edge 并按预期打开文件,这是我想从 Unity 中复制的行为。

环境

编辑: 我最终使用了

UnityEngine.WSA.Launcher.LaunchFile(folderType, relativePath, false);

你可以试试Launcher.LaunchFileAsync to launch a PDF file with Edge. This method required a StorageFile as the parameter, which can be got by FileOpenPicker or GetFileFromPathAsync.

请参考以下代码

    private async void PickAndLaunchFile()
    {
        // First, get a file via the picker.
        var openPicker = new Windows.Storage.Pickers.FileOpenPicker();
        openPicker.FileTypeFilter.Add("*");
        Windows.Storage.StorageFile file = await openPicker.PickSingleFileAsync();
        if (file != null)
        {
            // Next, launch the file.
            bool success = await Launcher.LaunchFileAsync(file);
    }