0

首先,我尝试下载 PDF 文件,下载完成后,我尝试从下载的路径将该 PDF 文件打开到 WebView 中。但是当我给出 PDF 的本地存储文件路径时它显示错误。下面我在尝试打开该文件时粘贴我的代码和错误,请帮助我找到此问题的正确解决方案。

var xhr = Titanium.Network.createHTTPClient({
onload : function() {
var f = Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory, 'test.pdf');
if (!f.exists()) {

f.write(this.responseData);
filepath = f.nativePath;
Ti.API.info('new pdf file');
} else {
Ti.API.info('file exists' + f.nativePath);
var intent = Ti.Android.createIntent({
action : Ti.Android.ACTION_VIEW,
type : "application/pdf",
data : f.nativePath
});
try {
Ti.Android.currentActivity.startActivity(intent);
} catch(e) {
Ti.API.debug(e);
alert('No apps PDF apps installed!');
}


}
},
timeout : 10000
});
xhr.open('GET', 'http://www.appcelerator.com/assets/The_iPad_App_Wave.pdf');
xhr.send();

4

1 回答 1

0

这是 Android 上 Appcelerator 的常见问题。问题是:

  • Android 没有内置 PDF 查看器(与 iOS 不同)
  • 数据目录是 Appcelerator 私有的,任何外部 PDF 查看器都无法读取。

为了解决这个问题,必须将 PDF 复制(使用代码)到 Android 设备的外部存储(例如 SD 卡)并从那里打开。这几乎是不可能模拟的,除非你有一个装有 SD 卡的设备,否则这是行不通的。

我仍在寻找适用于 Appcelerator 的较新 SDK(5.5.1 -> 6.0.2)的此问题的解决方案。

我敢肯定(和我一样)你会在网上搜寻答案并遇到以下问题:

https://archive.appcelerator.com/question/99031/how-to-open-pdf-file-saved-inside-app-directory-in-android-mobile

http://www.appcelerator.com/blog/2015/08/appcelerator-pdf-viewer-demo/

但我似乎无法让它们中的任何一个工作。

于 2017-02-28T11:36:42.390 回答