我正在为我的工作(社会住房)开发一个应用程序,我希望它能够让用户拍照并将其附加到电子邮件中,以便他们可以将其发送给我们(维修图片等)
我正在使用 Phonegap 和 Eclipse,因为我希望该应用程序是跨平台的,但目前主要在 Android 中进行测试。有没有办法做到这一点?我目前正在使用下面的代码但无济于事。
<script typr="text/javascript" charset="utf-8">
function camera()
{
navigator.camera.getPicture(onSuccess, onFail, { quality: 20,
destinationType: Camera.DestinationType.DATA_URL
});
function onSuccess(imageData) {
var image = document.getElementById('image');
var data = "data:image/jpeg;base64," + imageData;
var link = "mailto:johnsmith@gmail.com?body="+data+"&subject=john smith";
window.location.href = link;
}
function onFail(message) {
alert('Failed because: ' + message);
}
}
</script>
到目前为止,我已尝试使用 mailto: &attachment 方法将数据传递到邮件应用程序,但从未附加图像(大多数邮件应用程序将此视为安全漏洞)。然后我尝试在邮件正文中嵌入图片的base64代码(如上图)。不幸的是,base64 仅显示为纯文本并使邮件无响应。我还尝试在 Phonegap 中使用图像 URI 而不是 Base64 方法,但这会在我的 logcat 中引发“image.URI 未定义”错误。
这可能吗?我知道我可以使用 intents for android,正如这里另一个问题中详述的那样,但这在 iOS 等设备上不起作用。
如有任何帮助,我们将不胜感激。
编辑 02/12/2012
我在这里试图实现的功能与您在 native Android 图库/相机应用程序中获得的功能相同。拍照后,您有共享选项,其中之一是邮件。如果您选择通过邮件共享,图像将作为附件传递到邮件应用程序。有什么方法可以在我的应用程序中实现相同的功能吗?
最佳答案
所以看起来这个问题没有“一刀切”的解决方案。
mailto: 方法在大多数现代邮件应用程序中不会传递附件,因为它被视为安全风险。因此,无论是 imageURI 还是 base64 编码图像,mailto: 都不起作用。传递“主题”和“正文”对于任何想要使用上述代码预填写不带附件的电子邮件的人来说效果很好。
在其他地方提出这个问题后,我似乎需要使用 phonegap 插件(iOS 的 emailComposer 和 Android 的 WebIntent)才能成功地将图像从我的 phonegap 应用程序传递到邮件应用程序。
谢谢。
关于javascript - 如何将相机图像作为附件传递给邮件。 (Android、iOS、Windows Phone、Phonegap),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13651098/