Revision 349903 of 聯絡人資訊

  • Revision slug: Mozilla/Firefox_OS/第三方應用開發者指南/聯絡人資訊
  • Revision title: 聯絡人資訊
  • Revision id: 349903
  • Created:
  • Creator: evelynhung
  • Is current revision? No
  • Comment

Revision Content

聯絡人資訊 (contacts)

Contacts API 讓您可以取得使用者手機中所儲存的聯絡人列表、聯絡人姓名、電話、… 等資訊。
由於它牽涉到使用者私密資訊,目前僅開放審查通過的應用(privileged/certified)能夠使用這個 API。您的應用必須提出使用這個 API 的聲明,並且通過審查方可使用。

權限宣告:分為 "readonly", "readwrite", "readcreate" 三種級別,分別代表「只讀取」、「讀取與修改」、「讀取與新增」。您可依照應用需求作適當的權限宣告。

"permissions": {
  "contacts":{ "access": "readonly" }
}

1. 讀取聯絡人列表

    var options = {
      sortBy: 'familyName',
      sortOrder: 'ascending'
    };  
    var request = navigator.mozContacts.find(options);
    request.onsuccess = function findSuccess() {
      var firstContact = request.result[0];
      console.log('name' + firstContact.name);
      console.log('tel number' + firstContact.tel[0].value);
      console.log('update time' + new Date(firstContact.updated));
    };  

    request.onerror = function findError() {
      console.warn('Error: cannot find any contacts - ' + request.error.name);
    };

2. 新增聯絡人

    var myContact = {
      'name': 'Alice Wang',
      'givenName': 'Alice',
      'familyName': 'Wang',
      'tel': [{'value': '0912345678'}]
    }; 
    var contact = new mozContact();
    contact.init(myContact);
    var request = navigator.mozContacts.save(contact);
    request.onerror = function onerror() {
      console.warn('Error: save contact - ' + request.error.name);
    }; 

3. 修改聯絡人資訊

    var options = {
      filterBy: ['tel', 'givenName', 'familyName'],
      filterOp: 'contains',
      filterValue: 'Alice'
    }; 
    var request = navigator.mozContacts.find(options);
    request.onsuccess = function findSuccess() {
      var contact = req.result[0];
      contact.tel[0].value = '0987654321';
      var requestUpdate = navigator.mozContacts.save(contact);                                                                                                                          
      requestUpdate.onerror = function onerror() {
        console.warn('Error: update contact - ' + requestUpdate.error.name);
      }; 
    }; 

4. 刪除聯絡人

    var options = {
      filterBy: ['id'],
      filterOp: 'equals',
      filterValue: '0987654321'
    }; 
    var request = navigator.mozContacts.find(options);
    request.onsuccess = function findSuccess() {
      var contact = req.result[0];
      var requestRemove = navigator.mozContacts.remove(contact);                                                                                                                          
      requestRemove.onerror = function onerror() {
        console.warn('Error: remove contact - ' + requestRemove.error.name);
      }; 
    }; 

 

Revision Source

<h3>聯絡人資訊 (contacts)</h3>
<p>Contacts API 讓您可以取得使用者手機中所儲存的聯絡人列表、聯絡人姓名、電話、… 等資訊。<br />
  由於它牽涉到使用者私密資訊,目前僅開放審查通過的應用(privileged/certified)能夠使用這個 API。您的應用必須提出使用這個 API 的聲明,並且通過審查方可使用。<br />
  <br />
  權限宣告:分為 "readonly", "readwrite", "readcreate" 三種級別,分別代表「只讀取」、「讀取與修改」、「讀取與新增」。您可依照應用需求作適當的權限宣告。</p>
<pre>
"permissions": {
  "contacts":{ "access": "readonly" }
}</pre>
<h4>1. 讀取聯絡人列表</h4>
<pre>
    var options = {
      sortBy: 'familyName',
      sortOrder: 'ascending'
    };  
    var request = navigator.mozContacts.find(options);
    request.onsuccess = function findSuccess() {
      var firstContact = request.result[0];
      console.log('name' + firstContact.name);
      console.log('tel number' + firstContact.tel[0].value);
      console.log('update time' + new Date(firstContact.updated));
    };  

    request.onerror = function findError() {
      console.warn('Error: cannot find any contacts - ' + request.error.name);
    };</pre>
<h4>2. 新增聯絡人</h4>
<pre>
    var myContact = {
      'name': 'Alice Wang',
      'givenName': 'Alice',
      'familyName': 'Wang',
      'tel': [{'value': '0912345678'}]
    }; 
    var contact = new mozContact();
    contact.init(myContact);
    var request = navigator.mozContacts.save(contact);
    request.onerror = function onerror() {
      console.warn('Error: save contact - ' + request.error.name);
    }; </pre>
<h4>3. 修改聯絡人資訊</h4>
<pre>
    var options = {
      filterBy: ['tel', 'givenName', 'familyName'],
      filterOp: 'contains',
      filterValue: 'Alice'
    }; 
    var request = navigator.mozContacts.find(options);
    request.onsuccess = function findSuccess() {
      var contact = req.result[0];
      contact.tel[0].value = '0987654321';
      var requestUpdate = navigator.mozContacts.save(contact);                                                                                                                          
      requestUpdate.onerror = function onerror() {
        console.warn('Error: update contact - ' + requestUpdate.error.name);
      }; 
    }; </pre>
<h4>4. 刪除聯絡人</h4>
<pre>
    var options = {
      filterBy: ['id'],
      filterOp: 'equals',
      filterValue: '0987654321'
    }; 
    var request = navigator.mozContacts.find(options);
    request.onsuccess = function findSuccess() {
      var contact = req.result[0];
      var requestRemove = navigator.mozContacts.remove(contact);                                                                                                                          
      requestRemove.onerror = function onerror() {
        console.warn('Error: remove contact - ' + requestRemove.error.name);
      }; 
    }; </pre>
<p>&nbsp;</p>
Revert to this revision