Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Phonegap发送电子邮件_Javascript_Cordova_Email - Fatal编程技术网

Javascript 使用Phonegap发送电子邮件

Javascript 使用Phonegap发送电子邮件,javascript,cordova,email,Javascript,Cordova,Email,我正在使用javascript尝试发送包含HTML或附件的电子邮件,但这在mailto中是不可能的:。所以现在我需要一些其他的方式来发送HTML或电子邮件附件。我在phonegap中找到了这个电子邮件生成器插件,它应该可以正常工作,但它根本不会打开电子邮件应用程序,也不会提示您选择电子邮件应用程序的窗口 document.addEventListener('deviceready', function () { cordova.plugins.email.isAvailable(

我正在使用javascript尝试发送包含HTML或附件的电子邮件,但这在mailto中是不可能的:。所以现在我需要一些其他的方式来发送HTML或电子邮件附件。我在phonegap中找到了这个电子邮件生成器插件,它应该可以正常工作,但它根本不会打开电子邮件应用程序,也不会提示您选择电子邮件应用程序的窗口

document.addEventListener('deviceready', function () {
    cordova.plugins.email.isAvailable(
        function (isAvailable) {

            window.plugin.email.open({
                to:      'test@test.com',
                subject: 'Greetings',
                body:    'How are you? Nice greetings from Leipzig'
           }, callback, scope);
        }
    );
}, false);

function callback(){
    console.log("callback function");
}

function scope(){
    console.log("scope function");
}

确保以下各项:

1.将插件添加到项目中: 使用命令行导航到项目文件夹并运行以下命令:

cordova插件添加

2.使用模拟器或设备进行测试: 大多数Cordova插件无法使用web浏览器进行测试,并且要求设备或模拟器可用,请确保在设备或模拟器上测试代码

3.使用远程调试: 使用chrome或safari上的远程调试直接在连接的设备上调试应用程序,并查看出现了什么问题

Chrome远程调试: Safari远程调试:

4.查看电子邮件插件是否可用: 修改代码以显示isAvailable变量的值,并查看电子邮件插件在测试环境中是否可用

document.addEventListener('deviceready', function () {
    cordova.plugins.email.isAvailable(
        function (isAvailable) {
            alert("is email mobile available? " + (isAvailable ? "Yes" : "No"));
            if(isAvailable){
             window.plugin.email.open({
                 to:      'test@test.com',
                 subject: 'Greetings',
                 body:    'How are you? Nice greetings from Leipzig'
             }, callback, scope);
           }
        }
    );
}, false);

function callback(){
    console.log("callback function");
}

function scope(){
    console.log("scope function");
}

我一个接一个地检查了这些步骤,非常有趣,但现在它开始工作了。我之前已经完成了步骤1-3,所以我不确定是一条警报消息让它神奇地工作了,还是在尝试之前我在电子邮件软件中设置了(添加电子邮件地址等)。让我困惑的是,在设置电子邮件之前,它没有提示“我想使用什么电子邮件应用程序”。TL:DR如果email composer插件不起作用,请确保您设置了电子邮件应用程序。很高兴它为您工作!我认为,为了确定问题的原因,您可以尝试删除设备上的电子邮件帐户,看看问题是否再次出现,否则,这是上面提到的步骤之一。