gpt4 book ai didi

javascript - 如何在 Windows 8/Cordova 应用程序中打开本地 PDF?

转载 作者:行者123 更新时间:2023-11-29 10:40:45 25 4
gpt4 key购买 nike

我有一个我构建的 IOS 应用程序,现在我的任务是将其移植到 Windows 8 以便在 Windows 平板电脑上使用。我的应用程序从 Dropbox 下载文件,这些文件存储在本地文件夹中。我可以看到所有这些工作正常。我可以通过在我的 img 标签的 src 中使用 ms-appdata:///local/"+ filename 来引用图像,我什至可以使用 HTML5 从同一文件夹播放 mp4视频标签。

我的问题是,对于我的 IOS 版本,我使用 Cordova 的 InAppBrowser 打开本地 PDF,但在这个 Windows 8 版本上,它不起作用。

我正在使用以下代码(filename 等于 [1]CaseStudy-AC_EN_04.pdf 并且它确实存在于文件系统中):

 var ref = window.open("ms-appdata:///local/" + filename, '_blank', 'location=no');

当我运行模拟器时,我在 Visual Studio 中收到以下错误

APPHOST9607: The app can't launch the URI at ms-appdata:///local/[1]CaseStudy-AC_EN_04.pdf because of this error: -2147024846.

我已经尝试切换到 WinJS 编码方法,甚至尝试将 PDF 加载到 iFrame 中,但没有任何效果。如果必须的话,我不介意将用户踢出 Internet Explorer...我只需要某种方式让用户看到这些本地 PDF。这是权限问题吗?我只有一个 config.xml 文件,没有一个应用程序 list 文件,所以我可能缺少设置?

有没有人有这方面的经验?

最佳答案

以防其他人遇到此问题。我能够用这个 WinJS 代码做我想做的事(确保你包含 WinJS 框架文件)

//this is just the filename, you can probably skip this step but my filenames are from downloaded files so they could be encoded.
fileName = decodeURIComponent(fileName);

//get the local folder that contains the downloaded files
var applicationData = Windows.Storage.ApplicationData.current;
var localFolder = applicationData.localFolder;

//grab the file and return a promise
localFolder.getFileAsync(fileName)
.then(function(file) {
//launch the file - this command will let the OS use it's default PDF reader - win 8 app 'reader' works great.
Windows.System.Launcher.launchFileAsync(file);
});

就是这样。

@Matthew Corway 工作正常。但是,当文件位于子文件夹中时需要额外注意,如下例:

var fullPath = "\folderName\fileName.pdf"

关于javascript - 如何在 Windows 8/Cordova 应用程序中打开本地 PDF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29803100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com