尝试从WebView中的Titanium applicationDataDirectory本地存储打开脱机pdf文件

时间:2016-04-28 11:14:26

标签: appcelerator-alloy

首先,我试图下载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();

1 个答案:

答案 0 :(得分: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/

但我似乎无法使它们中的任何一个起作用。