使用 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);
});
我试过了
cordova.file.dataDirectory
cordova.file.applicationDirectory
并附加到每个文件的末尾,从 www 文件夹到我的文件的路径,以及文件名。我希望我能幸运地找到文件的正确组合,因为我似乎无法找到研究的答案。
编辑:
我正在尝试执行的工作流程已更改。
我现在将文件存储在服务器上,并使用 api 到 return 和 url 到文件。然后将文件下载到设备上,然后打开它。
目前,除了下载方法,我什么都可以。
$cordovaFile.writeFile(cordova.file.externalDataDirectory, resourceFullName, resource.DocumentURL, true)
下载方式只下载100bytes的文件
我认为这可能是因为 writeFile 方法正在请求数据,而我将 URL 赋给了文件,而不是 txt。看来我现在的问题是,如何将文件下载到设备。
示例使用
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/
我目前正在使用 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 到 return 和 url 到文件。然后将文件下载到设备上,然后打开它。
目前,除了下载方法,我什么都可以。
$cordovaFile.writeFile(cordova.file.externalDataDirectory, resourceFullName, resource.DocumentURL, true)
下载方式只下载100bytes的文件
我认为这可能是因为 writeFile 方法正在请求数据,而我将 URL 赋给了文件,而不是 txt。看来我现在的问题是,如何将文件下载到设备。
示例使用
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/