2013-06-03 2 views
2

Как видно из названия говорит, я пытаюсь вызвать Контакты в BlackBerry Каскады:BlackBerry 10 Cascades: Как вызвать Контакты с заранее заполненными полями?

https://developer.blackberry.com/cascades/documentation/device_platform/invocation/contacts.html

с заполненными полями из строки переменной, содержащей визитную карточку. Я не имел успеха с 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, электронная почта & броузера вызов с этой установкой, хотя MimeType, идентификаторы URI, данные, цели и действия были предприняты некоторая верность для правильного выбора, и конфигурация, которая, в конечном счете, работала, не является таковой из документации.

Итак, как вызвать Контакты?

ответ

0

Я изменил ваш код, поэтому теперь вы можете запускать приложение браузера (как в коде, который вы указали) в качестве контактного приложения. У меня нет контакта, установленного на моем устройстве-устройстве, поэтому для просмотра определенного контакта вам необходимо предоставить соответствующий идентификатор контакта (см. 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() 
        } 
       } 
      } 
     ] 
    } 
} 
Смежные вопросы