但是当电子邮件对话框打开时,它会显示一个附加文件,该文件是截图但发送电子邮件后收到的电子邮件中没有附件。这意味着屏幕截图没有发送。
任何人都可以告诉这段代码有什么问题吗?
var win = Ti.UI.createWindow({
// backgroundColor : '#666666'
backgroundColor : 'red',
// backgroundImage : 'img/1.jpg'
});
var btn = Ti.UI.createButton({
width : 100,
height : 30,
title : 'Test'
});
btn.addEventListener('click', function(e) {
Titanium.Media.takeScreenshot(function(e) {
var f = Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory, 'test.png');
f.write(e.media);
var emailDialog = Titanium.UI.createEmailDialog();
emailDialog.setToRecipients(['test@gmail.com']);
emailDialog.setSubject('test');
emailDialog.setMessageBody('testing......');
emailDialog.setHtml(true);
emailDialog.setBarColor('black');
emailDialog.addAttachment(f.read());
emailDialog.addEventListener('complete', function(e) {
if(e.result == emailDialog.SENT) {
alert("message was sent");
}
});
emailDialog.open();
});
});
win.add(btn);
win.open();
答案 0 :(得分:0)
addAttachment
函数可以获取blob,您不必将其保存到磁盘。此外,这可能无法正常工作,因为您可能没有applicationDataDirectory
的写入权限。
相反,只需从e.media
传递提供的blob:
Titanium.Media.takeScreenshot(function(e) {
var emailDialog = Titanium.UI.createEmailDialog();
// Get the supplied blob and attach
emailDialog.addAttachment(e.media);
// ...... add other email things here
});