use*_*745 5 qml blackberry-10 blackberry-cascades
我在BB 10的git hub中发现了一个用于发送电子邮件的示例,但它看起来非常复杂并且很多用C语言完成.
有没有人有一个如何使用QML发送快速电子邮件的例子.我不需要任何按钮或文本字段,只需要硬编码值.
我找到了这个简单的剪辑,但不知道如何整合它.
https://developer.blackberry.com/cascades/documentation/device_platform/pim/messages.html
任何帮助,将不胜感激.
以下代码将打开一个包含电子邮件编辑器的工作表,其中包含所有指定的电子邮件字段:
import bb.cascades 1.0
Page {
Container {
horizontalAlignment: HorizontalAlignment.Fill
layout: DockLayout {
}
Container {
horizontalAlignment: HorizontalAlignment.Center
verticalAlignment: VerticalAlignment.Center
TextArea {
id: emailBody
}
Button {
text: "Send email"
onClicked: {
emailInvocation.query.uri = "mailto:someemailadress@cookbook.xyz?subject=Test&body=" + emailBody.text
emailInvocation.query.updateQuery();
}
}
}
}
attachedObjects: [
Invocation {
id: emailInvocation
query.mimeType: "text/plain"
query.invokeTargetId: "sys.pim.uib.email.hybridcomposer"
query.invokeActionId: "bb.action.SENDEMAIL"
onArmed: {
emailInvocation.trigger(emailInvocation.query.invokeActionId);
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
小智 0
在创建 QmlDocument 后的 main.cpp 中,qml-> setContextProperty ("yourshortcut", object);
void xxx::invokeEmail(){
InvokeManager invokeManager;
InvokeRequest request;
request.setTarget("sys.pim.uib.email.hybridcomposer");
request.setAction("bb.action.COMPOSE");
request.setMimeType("message/rfc822");
InvokeTargetReply *reply = invokeManager.invoke(request);
if(reply) {
reply->setParent(this);
QObject::connect(reply, SIGNAL(finished()),this, SLOT(onInvokeResult()));
_invokeTargetReply = reply;
}
delete reply;
}
void xxx::onInvokeResult()
{
// Check for errors
switch(_invokeTargetReply->error()) {
// Invocation could not find the target
// did we use the right target ID?
case InvokeReplyError::NoTarget: {
qDebug() << "invokeFinished(): Error: no target" << endl;
break;
}
// There was a problem with the invoke request
// did we set all the values correctly?
case InvokeReplyError::BadRequest: {
qDebug() << "invokeFinished(): Error: bad request" << endl;
break;
}
// Something went completely
// wrong inside the invocation request
// Find an alternate route :(
case InvokeReplyError::Internal: {
qDebug() << "invokeFinished(): Error: internal" << endl;
break;
}
//Message received if the invoke request is successful
default:
qDebug() << "invokeFinished(): Invoke Succeeded" << endl;
break;
}
// A little house keeping never hurts...
delete _invokeTargetReply;
}
Run Code Online (Sandbox Code Playgroud)
然后在 QML 中使用您通过 context 属性创建的快捷方式调用 C++ 函数 invokeEmail。我用它来调用电子邮件卡