- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个我构建的 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/
我是一名优秀的程序员,十分优秀!