正如标题所说,我正试图在BlackBerry Cascades中调用联系人:
https://developer.blackberry.com/cascades/documentation/device_platform/invocation/contacts.html
从包含vCard的字符串变量填充的字段。我对上面文档中指定的mimeTypes,URI,操作和目标没有成功。我可以从已记录的案例中开发以下代码或任何变体:
Container {
property string inputString //contains data from which vCard should be extracted if detected
//....
attachedObjects: [
Invocation {
id: myQuery
property bool ready: false
query {
mimeType: "text/plain"
invokeTargetId: "sys.browser"
uri: ("http://www.google.com/search?q="+ escape(inputString))
invokeActionId: "bb.action.OPEN"
data: ""
onArmed: {myQuery.ready = true}
onQueryChanged: {
myQuery.query.updateQuery()
}
}
}
//....
if (inputString.indexOf("VCARD") > -1) {
myInvocation.query.setMimeType("");
myInvocation.query.setUri(inputString);
myInvocation.query.setData(inputString);
myInvocation.query.setInvokeTargetId("sys.pim.contacts.card.viewer");
myInvocation.query.setInvokeActionId("bb.action.VIEW");
myInvocation.query.updateQuery();
}
//...
Button {
onClicked: {
if (myQuery.ready = true) {
myQuery.trigger(myQuery.query.invokeActionId);
}
}
}
}
其他调用,如SMS,eMail&虽然MimeType,URI,数据,目标和操作需要一些摆弄才能设置正确,但是浏览器会调用此设置,最终工作的配置不是文档中的配置。
那么,如何调用联系人?
答案 0 :(得分:0)
我已修改您的代码,因此您现在可以作为浏览器应用启动(如您提供的代码中)作为联系人应用。我的开发设备上没有设置任何联系人,因此,为了查看某个联系人,您需要提供相应的联系人ID(有关此信息,请参阅ContactService)等等
import bb.cascades 1.0
Page {
Container {
property string inputString //contains data from which vCard should be extracted if detected
//....
Button {
text: "..."
onClicked: {
myQuery.trigger(myQuery.query.invokeActionId); // launches browser
contactInvocation.trigger(contactInvocation.query.invokeActionId); // launches contacts
}
}
attachedObjects: [
Invocation {
id: myQuery
query {
mimeType: "text/plain"
invokeTargetId: "sys.browser"
uri: ("http://www.google.com/search?q=" + escape("sample"))
invokeActionId: "bb.action.OPEN"
onQueryChanged: {
myQuery.query.updateQuery()
}
}
},
Invocation {
id: contactInvocation
query {
invokeTargetId: "sys.pim.contacts.app"
mimeType: "application/vnd.blackberry.contact.id"
invokeActionId: "bb.action.OPEN"
onQueryChanged: {
contactInvocation.query.updateQuery()
}
}
}
]
}
}