Работа с контактами в Sailfish OS

Итак, если Вы забрели сюда после этой инструкции с хабра с вопросом: "А чавой это у меня не получается добавить контакт" - у меня для Вас хорошие новости! Сейчас получится!
Работа с контактами в Sailfish OS



Итак, с момента написания той статьи немного изменилось API контактов и номер телефона, как в принципе и email превратился в шляпу, ну тоесть в объект с полями.
Поля такие:
number - собственно сам номер телефона
type - тип поля - для телефона будет Person.PhoneNumberType для почты Person.EmailAddressType
subTypes - подтип. Ну то есть обозначает тип мобильного домашний рабочий и прочее. Полный список, как всегда можно взять в исходниках тут
label - обозначение которое вы хотите ему дать, просто строка, например "Дом (Иннополис)" или "Дом (Москва)
index - порядок сортировки

С полями разобрались. Теперь попробуем их добавить в новый контакт:

Код QML:
  1. import QtQuick 2.6
  2. import QtQuick.Controls 1.0
  3.  
  4. import org.nemomobile.contacts 1.0
  5.  
  6. Page {
  7. id: somePage
  8.  
  9. Person {
  10. id: contact
  11. }
  12.  
  13. id: saveButton
  14. anchors.centerIn: parent
  15. text: "Do contact"
  16. onClick: saveContact()
  17. }
  18. }
  19.  
Простая такая страничка с кнопкой, которая при нажатии вызывает функцию saveContact() её и рассмотрим по подробнее

Код QML:
  1. function saveContact() {
  2. var first_name = "Nexus"
  3. var last_name = "Hummerhead"
  4.  
  5. var phones = [] //Создали пустой массив
  6.  
  7. var main_phone = {
  8. number: 89003321000,
  9. type: Person.PhoneNumberType,
  10. subTypes: Person.PhoneSubTypeMobile,
  11. label: "Иннополис",
  12. index: 1,
  13. } //Создали объект с полями, которые нам нужны
  14.  
  15. phones.push(main_phones) // добавляем в массив
  16.  
  17. //Ну а теперь просто сохраняем наш контакт
  18. contact.firstName = first_name
  19. contact.lastName = last_name
  20. contact.phoneDetails = phones
  21. }
Вот в принципе и всё.
Комментарии (0)

Нет комментариев. Ваш будет первым!

Copyright 2016-2024 NeoChapay