我想在用户注册我的混合应用程序(基于 IBM Worklight 6.0)后向他/她发送一封电子邮件。
我想将用户的参数(电子邮件 ID)传递到托管的 PHP 文件。我尝试直接在 URL 中发送邮件,如下所示,效果如下:
http://www.xxxyyyzzz.comli.com/[email protected]
如何通过 Worklight 适配器执行相同操作?
适配器.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>
适配器 IMP.JS
function getStories(interest) {
path = getPath(interest);
var input = {
method : 'get',
returnedContentType : 'html',
path : '/email.php?a='
};
return WL.Server.invokeHttp(input);
}
参数在哪里?您没有将其传递给适配器过程 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);
}
查看相关问题:
- IBM Worklight - 如何将参数从应用程序传递到适配器?
- IBM Worklight 6.1 - 如何在适配器中发送发布值?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)