BlackBerry 10 Cascades:如何使用预填充字段调用联系人?

时间:2013-06-03 12:53:08

标签: blackberry-10

正如标题所说,我正试图在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,数据,目标和操作需要一些摆弄才能设置正确,但是浏览器会调用此设置,最终工作的配置不是文档中的配置。

那么,如何调用联系人?

1 个答案:

答案 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()
                    }
                }
            }
        ]
    }
}