2014-02-24 91 views
1

我想在用户登录混合应用程序后(基于IBM Worklight 6.0)向用户发送电子邮件。通过HTTP适配器传递参数?

我想将用户的参数(电子邮件ID)传递给托管的PHP文件。我直接尝试发送邮件的URL如下,这个工程:

http://www.xxxyyyzzz.comli.com/[email protected] 

如何通过工作灯适配器一样吗?

ADAPTER.XML

<wl:adapter name="sendmail" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:wl="http://www.worklight.com/integration" 
xmlns:http="http://www.worklight.com/integration/http"> 

<displayName>sendmail</displayName> 
<description>sendmail</description> 
<connectivity> 
    <connectionPolicy xsi:type="http:HTTPConnectionPolicyType"> 
     <protocol>http</protocol> 
     <domain>xxxyyy.comli.com</domain> 
     <port>80</port> 

     <sslCertificateAlias></sslCertificateAlias> 
     <sslCertificatePassword></sslCertificatePassword> 
     -->  
    </connectionPolicy> 
    <loadConstraints maxConcurrentConnectionsPerNode="2" /> 
</connectivity> 

<procedure name="getStories"/> 

<procedure name="getStoriesFiltered"/> 

</wl:adapter> 

ADAPTER IMP.JS

function getStories(interest) { 
path = getPath(interest); 

var input = { 
    method : 'get', 
    returnedContentType : 'html', 
    path : '/email.php?a=' 
}; 


return WL.Server.invokeHttp(input); 
} 

回答

1

哪里参数?您没有将它传递给适配器程序AFAICT。

请尝试下面的内容(我没有对它进行端到端测试,因为我没有一个PHP脚本服务器监听请求)。

HTML

Your email address: <input type="text" id="emailaddr"/> 
<input type="button" onclick="sendEmail()" value="Submit Email Address"/> 

的JavaScript

function sendEmail() { 
    var invocationData = { 
      adapter : 'myAdapter', 
      procedure : 'sendEmailProcedure', 
      parameters : [$('#emailaddr').val()] // the email adrress taken from the HTML... 
    }; 

    var options = { 
      onSuccess : success, 
      onFailure : failure 
    }; 

    WL.Client.invokeProcedure(invocationData, options); 
} 

function success() { 
    WL.Logger.debug ("invocation succeeded."); 
} 
function failure() { 
    WL.Logger.debug ("invocation failed."); 
} 

myAdapter.xml

... 
... 
<connectivity> 
    <connectionPolicy xsi:type="http:HTTPConnectionPolicyType"> 
     <protocol>http</protocol> 
     <domain>host-address</domain> 
     <port>80</port> 
    </connectionPolicy> 
    <loadConstraints maxConcurrentConnectionsPerNode="2" /> 
</connectivity> 

<procedure name="sendEmailProcedure"/> 

myAdapter-impl.js

function sendEmailProcedure(emailAddress) { 
    var input = { 
     method : 'get', 
     returnedContentType : 'html', 
     path : '/email.php?a=' + emailAddress 
    }; 

    return WL.Server.invokeHttp(input); 
} 


查看相关问题:

+0

我调用过程中传递的参数。那是我尝试调用适配器。 –

+0

您的代码段不显示任何传递给适配器的参数。 –

+0

我尝试通过使用run as-> invoke procedure手动调用适配器过程,并在txt框中传递了参数 –