在Windows 8.1商店应用程序中打开各种pdf

时间:2013-11-22 12:49:28

标签: javascript windows-store-apps windows-8.1

我一直在浏览教程并构建一个基本的Windows 8.1商店应用程序。 该应用程序包含各种链接到我存储在资源文件夹中的PDF文件,并且一直试图让它们在Windows阅读器中默认打开...

到目前为止,我有一个单独的pdf文件,一旦点击就会完美打开。但是我需要这个来处理所有PDF文件,而不仅仅是我在filetoLaunch变量中指定的文件。

(function () {
 "use strict";

 WinJS.UI.Pages.define("/pages/page/page.html", {

     ready: function (element, options) {
         document.getElementById("file").addEventListener("click", launchFile, false);

     }
 });

 var fileToLaunch = "assets\\mypdf.pdf";

 function launchFile() { Windows.ApplicationModel.Package.current.installedLocation.getFileAsync(fileToLaunch).done(
         function (file) {
             Windows.System.Launcher.launchFileAsync(file).done(
                 function (success) {
                     if (success) {
                         WinJS.log && WinJS.log("File " + file.name + " launched.", "sample", "status");
                     } else {
                         WinJS.log && WinJS.log("File launch failed.", "sample", "error");
                     }
                 });
         });
 }

基本上我无法弄清楚如何更改filetoLaunch变量以定义所有pdf而不仅仅是那个单独的pdf。

任何想法都会很棒!感谢。

1 个答案:

答案 0 :(得分:0)

只需在该功能中传递您的文件名。

你只需要提供完整的文件路径。

<强> HTML

<button onclick="fileLauncher('Database.txt')">Database.txt</button>
<button onclick="fileLauncher('Modules.txt')">Modules.txt</button>
<button onclick="fileLauncher('My_Comments.pdf')">My_Comments.pdf</button>

<强> JS

function fileLauncher(fileName) {

    var fileToLaunch = "Assets\\"+fileName;

     Windows.ApplicationModel.Package.current.installedLocation.getFileAsync(fileToLaunch).done(
            function (file) {
                Windows.System.Launcher.launchFileAsync(file).done(
                    function (success) {
                        if (success) {
                            WinJS.log && WinJS.log("File " + file.name + " launched.", "sample", "status");
                        } else {
                            WinJS.log && WinJS.log("File launch failed.", "sample", "error");
                        }
                    });
            });

}