我目前正在使用 Corodova 插件 inappbrowser打开文件。它在 iOS 上运行良好,但在 Android 上运行不正常。我发现Android的浏览器不支持查看文件,所以你必须使用系统。
我认为我遇到的问题是我不知道如何获取文件的路径。
这是我的代码:
$scope.onResourceClick = function(url){
window.open(url, '_system', 'location=no');
};
url 是文件的相对路径,来自 www 文件夹中的 index.html。
所以我想我的问题是,如何获取文件的绝对路径。
我正在进步。使用Cordova's file plugin我可以得到一些不同的路径。仍然不确定使用哪个以及文件的确切存储位置。
我正在使用 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/
关于android - 使用 Cordova 在 Android 上打开 powerpoint 和 word 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28975962/