Javascript 带有附件的电子邮件生成器Phonegap插件在iOS中不使用imageURI

Javascript 带有附件的电子邮件生成器Phonegap插件在iOS中不使用imageURI,javascript,ios,html,cordova,email-attachments,Javascript,Ios,Html,Cordova,Email Attachments,我正在尝试使用带有附件的电子邮件生成器phone gap插件从我的phonegap应用程序发送一张图片作为附件。然而,我无法让它工作 我试过两种不同的方法。第一个是使用Phonegap摄像头api将imageURI传递给email composer。代码如下: function camera1() { navigator.camera.getPicture(sendEmail, onFail, { quality: 20,

我正在尝试使用带有附件的电子邮件生成器phone gap插件从我的phonegap应用程序发送一张图片作为附件。然而,我无法让它工作

我试过两种不同的方法。第一个是使用Phonegap摄像头api将imageURI传递给email composer。代码如下:

function camera1()
        {
            navigator.camera.getPicture(sendEmail, onFail, { quality: 20,
                                        destinationType: Camera.DestinationType.FILE_URI});

            function sendEmail(imageURI) {

                window.plugins.emailComposer.showEmailComposer("Test","Test","test@gmail.com","","",true,imageURI)
            }

            function onFail(message) {
                alert('Failed because: ' + message);
            }

        }
此方法启动iphone摄像头应用程序,允许我拍照。但是,只要我点击“使用”按钮,我的xcode调试控制台就会出现以下错误:

2013-01-06 17:57:50.741 Saffron Housing移动应用程序[1203:907]-[[u NSCFString countbyEnumerating with state:objects:count:]:发送到实例0x1dd9d6a0的无法识别的选择器 2013-01-06 17:57:50.906 Saffron Housing移动应用程序[1203:907]EmailComposer-无法设置为收件人;错误:-[\u NSCFString countByEnumeratingWithState:对象:计数:]:发送到实例0x1dd9d6a0的选择器无法识别 2013-01-06 17:57:50.914 Saffron Housing移动应用程序[1203:907]-[[u NSCFString countbyEnumerating with state:objects:count:]:无法识别的选择器发送到实例0x1dd1abf0 2013-01-06 17:57:50.916 Saffron Housing移动应用程序[1203:907]EmailComposer-无法设置附件;错误:-[\u NSCFString countByEnumeratingWithState:对象:计数:]:发送到实例0x1dd1abf0的选择器无法识别 2013-01-06 17:57:51.524 Saffron Housing移动应用程序[1203:907]警告:在演示过程中尝试在上演示

我尝试使用的第二种方法是将图像保存到本地存储,然后将其作为变量传递给email composer。我还在这个方法中实现了一个通知事件,因为前面的错误消息让我认为email composer插件在摄像头事件后试图打开得太快(纯粹是基于“警告:演示正在进行时尝试打开!”)代码如下:

function camera1()
        {
            navigator.camera.getPicture(sendAlert, onFail, { quality: 20,
                                        destinationType: Camera.DestinationType.FILE_URI});
                                        localStorage.setItem('photo', imageURI);

            function sendAlert()
                navigator.notification.confirm('Send Picture?',sendEmail,'Send Picture?','Yes,No')

            function sendEmail(1) {

                var photo = localStorage.getItem('photo')
                window.plugins.emailComposer.showEmailComposer("Test","Test","test@gmail.com","","",true,photo);
            }

            function onFail(message) {
                alert('Failed because: ' + message);
            }

        }
这个代码的问题是相机根本无法启动。当我点击按钮时,什么也没有发生。调试控制台中甚至没有任何东西

为了使事情更加复杂,我试着打开一个基本的email composer事件,看看我是否正确地实现了插件。当不尝试附加图片时,电子邮件生成器至少会打开并填写我的主题和正文。但它不会填写任何收件人。代码是:

function camera()
        {
            window.plugins.emailComposer.showEmailComposer("Test","Test","test@gmail.com","","",true,"")

        }

我的问题是我做错了什么?

toRecipients
ccRecipients
BCRecipients
、以及
附件
参数应该是数组,但您将它们作为字符串传递

window.plugins.emailComposer.showEmailComposer("Test", "Test", ["test@gmail.com"], [], [], true, [imageURI]);

像这样做,然后再试一次。

我不知道这是否是您出错的原因,但您的附件路径应该类似于[“/var/mobile/Applications/351………..F3/yourapp.app/www/images/yourmage.png”]

谢谢。它解决了收件人未出现的问题,但在尝试附加图像时仍会出现相同的错误:“警告:在演示过程中尝试在MainViewController上演示MFMailComposeViewController!”我想不出怎么解决这个问题。你解决了吗?我也有同样的问题,你能帮我把答案贴出来吗。非常感谢。