Actions: getPhoneContacts & getPhoneContactPhoto
The PhoneContacts view is designed to retrieve and display phone contacts from Android and iOS physical devices or simulators. It includes a warning note, a button to fetch contacts, and a list view to display individual contact details.
- Button:
label: Get Phone Contacts
onTap:
getPhoneContacts:
id: phoneContactId
onSuccess: |
// ***code
console.log("Phone Number Fetched Successfully");
ensemble.storage.set('contacts', event.data['contacts']);
onError: |
// ***code
console.log("Something went wrong!");The onSuccess and onError callbacks for the "Get Phone Contacts" button. In the success callback (onSuccess), the retrieved contacts are logged to the console and stored in the ensemble.storage.contacts. In the error callback (onError), a message is logged indicating an issue.
- ListView:
id: listView
styles:
expanded: true
item-template:
data: ${ensemble.storage.contacts}
name: contact
template:
UserContact:
inputs:
contact: ${contact}The ListView component displaying a list of contacts (ensemble.storage.contacts). It uses the UserContact custom widget template for each item in the list.
UserContact:
inputs:
- contact
styles: { gap: 10 }
onLoad:
getPhoneContactPhoto:
id: contactPhotoId
contactId: ${contact.id}
# Using JS Code
# //@code
# ensemble.getPhoneContactPhoto({
# id: "contactPhotoId",
# contactId: contact.id
# });
body:
Column:
styles: { gap: 2 }
children:
- Row:
children:
- Image:
source: ${contactPhotoId.image}
width: 100
height: 100
fallback: ImageFallbackWidget
- Column:
styles: { gap: 2, margin: 10 }
children:
- Text:
textStyle: { fontWeight: bold, fontSize: 18 }
text: "${contact.displayName}"
- Text:
textStyle: { fontWeight: bold, fontSize: 18 }
text: "${getPhoneNumber(contact.phones)}"
- Shape:
styles:
height: 10
- Divider:The UserContact component representing the structure for displaying an individual contact. It includes an Image and two Text components for displaying the contact's display image, name and phone number. The getPhoneContactPhoto action is used to get the contact photo with the contactId.
Global: |
//@code
if (ensemble.storage.contacts == null) {
ensemble.storage.contacts = [];
}
function getPhoneNumber(phones) {
if (phones.length > 0) {
return phones[0].number;
} else {
return "";
}
}The global code block initializes ensemble.storage.contacts as an empty array if it's null. It also includes the getPhoneNumber function, which extracts the primary phone number from an array of phone numbers.