Windows运行时Javascript应用程序 - 启动Javascript文件

时间:2015-07-02 14:16:58

标签: javascript file windows-runtime windows-store-apps blob

在Windows运行时应用程序中,我有一个从Javascript Blob对象创建的javascript文件对象,它是各自的mime类型。

最终目标是使用默认的Windows应用程序打开此文件(或提示用户选择一个)。所以PDF将由Adobe打开,等等。

目前,我是:

  1. 从blob,日期对象和mime创建File对象
  2. 获取Windows应用程序的安装目录并在那里创建新文件
  3. 打开该窗口文件并将我的javascript-created-blob文件写入其中。
  4. 使用Windows.System.Launcher.launchFileAsync()打开已完成的Windows文件,并使用适当的应用程序启动该文件。
  5. 有没有办法消除这些步骤?保存文件并将其重新打开似乎是多余的,因为我觉得我可以首先“打开”该文件,但我没有看到Microsoft提供的关于如何打开javascript文件的任何文档。

1 个答案:

答案 0 :(得分:1)

对于将来遇到这种情况的人来说,似乎没有办法跳过写入步骤,所以这里是保存并打开blob文件的代码,给定二进制blob(blob)和正确的文件名(fileName) )

var reader = new FileReader();
var blobAsArrayBuffer;
reader.onloadend = function () {
    blobAsArrayBuffer = reader.result;
    var folder = Windows.Storage.ApplicationData.current.temporaryFolder;
    var storageFile = folder.createFileAsync(fileName, Windows.Storage.CreationCollisionOption.replaceExisting).then(
        function (file) {
            var u8array = Uint8Array(blobAsArrayBuffer);
            Windows.Storage.FileIO.writeBytesAsync(file, u8array);
            Windows.System.Launcher.launchFileAsync(file);
        });
    };
reader.readAsArrayBuffer(blob);