我正在使用Ionic Framework构建一个iOS / Android应用程序,该应用程序将sqlite数据写入CSV文件,然后将该文件附加到电子邮件并发送。以下代码在iOS(实际设备iPhone 5)上正常工作。
我没有Android设备,但在Android模拟器(nexus 5)中,发送的文件从不具有文件附件(尽管模拟器显示它确实存在)。
我应该用不同的方式编写这段代码吗?
我在这里查看了文档,但没有说明
https://github.com/katzer/cordova-plugin-email-composer#adding-attachments
$cordovaFile.writeFile(cordova.file.dataDirectory,
"PatientEncounters.csv",
data.join("\n"),
true)
.then(function (success) {
$cordovaEmailComposer.isAvailable().then(function() {
var emailOpts = {
to: [email],
attachments: ['' +
cordova.file.dataDirectory.replace('file://','') + "PatientEncounters.csv"],
subject: 'Patient Encounters',
body: 'A CSV containing Patient Encounters is attached',
isHtml: false
};
$cordovaEmailComposer.open(emailOpts).then(null, function () {
// user cancelled email
});
return;
}, function (error) {
return;
});
}, function () {
// not available
});
答案 0 :(得分:1)
我的问题是使用cordova.file.dataDirectory而不是cordova.file.externalDataDirectory。 android中的邮件应用程序不允许从内部存储中附加文件。