接下来,我们可以在我们的App中创建新的联系人,并将新创建的联系人的信息保存到手机的通讯录中。
首先我们需要修改 index.html,让用户可以在网页中填写新的联系人的信息:
然后,修改 index.js,在 onDeviceReady 方法中加入以下代码:
var btnNew = document.getElementById('btnNew'),
divNew = document.getElementById('divNew'),
txtName = document.getElementById('txtName'),
txtPhone = document.getElementById('txtPhone'),
btnSubmit = document.getElementById('btnSubmit'),
btnCancel = document.getElementById('btnCancel');
// 点击“新建联系人”按钮后,将让用户填写联系人信息的面板展示出来
btnNew.addEventListener('click', function () {
this.disabled = 'disabled';
divNew.style.height = 'auto';
}, false);
// 点击“取消”按钮后,将填写联系人信息的面板收隐藏
btnCancel.addEventListener('click', function () {
btnNew.disabled = '';
txtName.value = txtPhone.value = '';
divNew.style.height = '0px';
}, false);
// 点击“提交”按钮后,创建联系人信息,并将其写入手机的通讯录中
btnSubmit.addEventListener('click', function () {
var name = txtName.value, phone = txtPhone.value;
if (name && phone) {
// 这里仅仅是创建了一个联系人的数据(Contact类的实例),并没有保存到通讯录中
var contact = navigator.contacts.create({
displayName: name,
phoneNumbers: [{
type: 'mobile',
value: phone
}]
});
// 将新建的联系人信息保存到通讯录中
contact.save(function () {
// 保存成功后执行
createItem(contact); // 将新建的联系人信息显示到我们页面中的联系人列表中
btnCancel.click(); // 触发“取消”按钮的点击事件,将填写联系人信息的面板隐藏
}, function (err) {
// 保存失败后执行
alert('发生错误了!' + err);
});
}
}, false);