mozilla

修改 351527 of 聯絡人資訊

  • 版本網址代稱: Mozilla/Firefox_OS/3rd_Party_App_Developer_Guide/Contacts
  • 版本標題: 聯絡人資訊
  • 版本 ID: 351527
  • 建立日期:
  • 建立者: teoli
  • 是目前線上的版本?
  • 回應 Mozilla/Firefox_OS/3rd_Party_App_Developer_Guide/聯絡人資訊 Mozilla/Firefox_OS/3rd_Party_App_Developer_Guide/Contacts

版本內容

聯絡人資訊 (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);
      }; 
    }; 

 

版本來源

<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>
還原至此版本