如何在 Cordova 应用程序中打开电子邮件文件?

How to open an email file in a Cordova app?

我想将电子邮件文件下载到 cordova.file.cacheDirectory 并在默认电子邮件应用程序中打开它们。我正在使用 Cordova File Transfer Plugin for the download and the File Opener Plugin 在默认应用程序中打开。下载部分工作正常,但是 File Opener 插件出现以下错误:

Error status: 9 - Error message: Could not handle UTI

我要打开的文件是 MIME 格式的(.eml 扩展名),我使用的 MIME 类型是 message/rfc822:

function openFileWithDefaultApp(fileEntry) {
    var fileUrl = fileEntry.toURL();
    cordova.plugins.fileOpener2.open(
        fileUrl,
        'message/rfc822', {
            error: function (e) {
                console.log(
                    'Error status: ' + e.status +
                    ' - Error message: ' + e.message);
            },
            success: function () {
                console.log('file opened successfully');
            }
        }
    );
}

我错过了什么?

P.S。此代码可完美处理 PDF 文件。简单地切换到电子邮件文件会导致此问题。我想知道 .eml 文件是否有 "default app",或者我是否必须切换其他格式?一种可能性是将电子邮件转换为 PDF,但这会丢失附件。因此这不是可取的。

如果没有特定的应用程序(例如 Klammer 或 'EML Viewer'),无法在 iOS(参见 https://discussions.apple.com/thread/3709613?start=0&tstart=0)上打开 .eml。

另一种方法是在服务器上将 .EML 转换为 .PDF,对此可能有 OS 选项(例如 https://github.com/nickrussler/eml-to-pdf-converter)。