使用 Cordova 在 Android 上打开 powerpoint 和 word 文档

Opening powerpoint and word documents on Android using Cordova

我目前正在使用 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);
    });

我试过了

并附加到每个文件的末尾,从 www 文件夹到我的文件的路径,以及文件名。我希望我能幸运地找到文件的正确组合,因为我似乎无法找到研究的答案。

编辑:

我正在尝试执行的工作流程已更改。 我现在将文件存储在服务器上,并使用 api 到 return 和 url 到文件。然后将文件下载到设备上,然后打开它。

目前,除了下载方法,我什么都可以。

$cordovaFile.writeFile(cordova.file.externalDataDirectory, resourceFullName, resource.DocumentURL, true)

下载方式只下载100bytes的文件

我认为这可能是因为 writeFile 方法正在请求数据,而我将 URL 赋给了文件,而不是 txt。看来我现在的问题是,如何将文件下载到设备。

使用以下File Opener Plugin

示例使用

window.plugins.fileOpener.open("file:///sdcard/Android/data/com.example.application/manual.pdf");

您可能还遇到其他几个问题:

系统浏览器可能没有权限打开您应用程序的 www 目录中的文件。

我认为 Android 的浏览器不支持 PDF 或 Powerpoint。正如 Murtaza 所建议的,有一些插件可以让您在另一个应用程序中打开文档。您还可以查看 pdf.js 在网络视图中呈现 PDF。

要下载文件,您应该使用文件传输插件。 http://ngcordova.com/docs/plugins/fileTransfer/