2

タイトルが示すように、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、データ、ターゲット、およびアクションを正しく設定するのに多少の手間がかかり、最終的に機能した構成はドキュメントのものではありません.

では、連絡先を呼び出す方法は?

4

1 に答える 1

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()
                    }
                }
            }
        ]
    }
}
于 2013-07-11T06:09:34.743 に答える