从 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 iOS无法打开链接

Cordova 3.1 在 iOS6 上的 Safari 中打开链接

Cordova ios 应用程序 - 由于弹出窗口阻止程序而无法打开链接

在 iOS 8.4.1 上使用 Cordova 无法打开链接(和点击)