我目前正在使用Corodova插件inappbrowser打开文件。在iOS上运行正常,但在Android上却无法正常运行。我发现Android的浏览器不支持查看文件,因此您必须使用该系统。
我认为我遇到的问题是我不知道如何获取文件的路径。
这是我的代码:
$scope.onResourceClick = function(url){
window.open(url, '_system', 'location=no');
};
url是文件的相对路径,从www文件夹中的index.html开始。
所以我想我的问题是,如何获取文件的绝对路径。
我正在进步。使用Cordova的文件插件,我可以获得一些不同的路径。仍不确定使用哪个文件以及文件存储在何处。
我正在使用cordovaFile.checkFile来检查我尝试的路径中是否有文件,我现在只是有点猜测,看我是否能找到并找到它。
$cordovaFile.checkFile(cordova.file.dataDirectory, url)
.then(function (success) {
alert('yay' + success);
}, function (error) {
alert('nah' + error);
});
我试过了
cordova.file.dataDirectory
cordova.file.applicationDirectory
然后在每个文件的末尾附加从www文件夹到我的文件的路径,以及文件名。我希望我能幸运地找到文件的正确组合,因为我似乎找不到研究的答案。
编辑:
我正在尝试执行的工作流程已更改。我现在将文件存储在服务器上,并使用api将url返回到文件。然后将文件下载到设备上,然后打开它。
目前,除了下载方法外,我什么都可以使用。
$cordovaFile.writeFile(cordova.file.externalDataDirectory, resourceFullName, resource.DocumentURL, true)
下载方法仅下载100bytes的文件。
我认为这可能是因为writeFile方法要求提供数据,而我给它提供的是文件的URL,而不是txt。看来我当前的问题是,如何将文件下载到设备。
您可能还有其他几个问题:
系统浏览器可能无权打开应用程序的www目录中的文件。
我不认为Android的浏览器支持PDF或Powerpoint。正如Murtaza所建议的,有些插件可以让您在另一个应用程序中打开文档。您也可以研究pdf.js以在Webview中呈现PDF。
要下载文件,您应该使用文件传输插件。http://ngcordova.com/docs/plugins/fileTransfer/
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句