从 Cordova 和 iOS 打开 MS Office 文件
Posted
技术标签:
【中文标题】从 Cordova 和 iOS 打开 MS Office 文件【英文标题】:Open MS Office files from Cordova and iOS 【发布时间】:2017-04-18 08:57:01 【问题描述】:我正在使用 Cordova 在 ios(版本 10.3)中创建应用程序。我想用命令打开一个office文件
window.open("data:application/msword;base64," + fileContent, "_blank", "location=no");
我使用可以在此处找到的 MIME http://filext.com/faq/office_mime_types.php.
我已经安装了插件 InAppBrowser、ADALProxy、Cordova-plugin-MS-Files。
我的问题是,当文档打开时,它是空白的,完全是空的。我可以查看其他类型的文件(pdf、图像等),但不能查看 Office 文件(docx、xls、ppt)。
有什么想法吗?我是否缺少任何插件?
【问题讨论】:
你是怎么得到fileContent
的?如果您使用文件 url,inAppBrowser 插件应该可以工作
我正在通过调用一个过程从网络服务读取文件内容。
【参考方案1】:
我认为问题是由于 inAppBrowser 无法查看 MS 文件引起的。
我的建议是使用 fileOpener2 插件使用用户拥有的任何能够打开 MS 文件的文档查看器来打开文件。
http://ngcordova.com/docs/plugins/fileOpener2/135
然后你可以使用这样的东西:
cordova.plugins.fileOpener2.open(
'YOUR_FILE_URI', // File location or URI
'application/docx', //MIME type
error : function(e)
console.log('Error status: ' + e.status + ' - Error message: ' + e.message);
,
success : function ()
console.log('file opened successfully');
);
这将导致设备使用可以处理 MS 文件的应用程序。
【讨论】:
我知道fileopener,但它需要提供文件的URI。现有应用程序,从 Web 服务获取文件内容并打开它。最好还是这样。 另外,如果你提供 url,InAppBrowser 能够打开 MS 文件,但他没有提供 url,所以它们都不起作用,不是 InAppBrowser 也不是 fileOpener2 啊。我现在明白了。我会再看看并改变我的答案。 其实我没有直接访问文件的URI,我只能通过webservice获取内容。我对其他文件(pdf、图像)做同样的事情,InAppBrowser 可以打开它们。 你能链接到你正在使用的确切插件吗?【参考方案2】:我知道这是个老问题,但是我写了一个 Cordova 插件来预览办公文档和大多数主要文件类型,
它适用于 IOS 和 android
你可以从这里使用它
https://github.com/mostafa-mansour1/previewAnyFile
安装在您的 cordova 或 ionic 项目中
$ cordova plugin add cordova-plugin-preview-any-file --save
然后像这样在你的代码中使用它
PreviewAnyFile.preview("file://filepath/filename.ext");
如果源是base64字符串,那么你需要将它保存在设备中cordova file plugin(写入文件)部分
【讨论】:
以上是关于从 Cordova 和 iOS 打开 MS Office 文件的主要内容,如果未能解决你的问题,请参考以下文章
当用户从 Cordova 的 iOS 通知中心选择通知时更改状态
Cordova - 一些 Android 手机忽略了 textarea 的 autocapitalize=off
Cordova 3.1 在 iOS6 上的 Safari 中打开链接