本文档部分API缺少示例代码,诚挚的邀请你参与到示例代码的编写中来,你可以在代码中发布2行自定义注释,内容自拟。 有意者可与刺鸟联系(QQ:4041990 Q群:7702175)

API简介

uexContact本对象封装了用于调用系统联系人(只显示姓名),打开,添加,删除,查找,修改联系人等功能。

接口说明

方法说明
uexContact.open()打开系统联系人,Open调用的是系统联系人的界面,case返回的是选中的系统联系人的姓名,电话,邮件,但是每次只能选择一个联系人。
uexContact.cbOpen(opId,dataType,data)打开联系人的回调方法。
uexContact.addItem(inName,inNum,inEmail)增加一条联系人信息到系统的通讯录。如果系统允许可以两个联系人的姓名是相同的,电话和邮件的内容不同就可以添加相同的联系人;如果系统不允许添加的两个联系人的姓名是相同的,那么只能用其他的符号加以区分。
uexContact.cbAddItem(opId,dataType,data)添加联系人的回调方法。
uexContact.deleteItem(inName)根据名字从系统的通讯录里删除一条联系人信息。如果系统允许两个联系人的姓名是相同的,那么删除的时候系统默认的是删除第一个联系人的姓名,电话,邮件信息。
uexContact.cbDeleteItem(opId,dataType,data)删除联系人的回调方法。删除通讯录中人名信息。
uexContact.searchItem(inName)根据名字从系统的通讯录里查找一条联系人信息,如果通讯录里不存在此联系人,此方法将会报错,错误信息在uexWidgetOne.cbError中提示。识别模糊搜索,返回json数组字符串。
uexContact.cbSearchItem(opId,dataType,data)搜索联系人的回调方法。模糊搜索,返回多组联系人信息。
uexContact.modifyItem(inName,inNum,inEmail)根据名字修改系统通讯录里的一条联系人信息,如果通讯录里不存在此联系人,此方法将会报错,错误信息在uexWidgetOne.cbError中提示。
uexContact.cbModifyItem(opId,dataType,data)修改联系人的回调方法。修改通讯录中人名信息。
uexContact.multiOpen()该接口打开的界面是一个自定义的联系人界面,该界面中的数据是当前设备上所有联系人的信息,支持多选。
uexContact.cbMultiOpen(opId,dataType,data)选择多个联系人的回调函数。
uexContact.addItemWithVCard(vcard)把扫描的vcard的数据导入联系人中,通过回调方法uexContact.cbAddItem获取
cbOpen(opId,dataType,data)
参数名称描述
opId操作ID,在此函数中不起作用,可忽略。
dataType成功时返回数据的数据类型为uex.cJSON (值为1)。
data返回的数据,格式为:{'name':'xxxx','num':'13800138000','email':'xx@xx.com'}
addItem(inName,inNum,inEmail)
参数名称描述
inName联系人姓名。
inNum联系人电话。
inEmail联系人邮箱。
cbAddItem(opId,dataType,data)
参数名称描述
opId操作ID,在此函数中不起作用,可忽略。
dataType返回数据的数据类型为uex.cInt (值为2)。
data返回的int型的数据,成功返回uex.cSuccess(值为0)或失败返回uex.cFailed(值为1)。
deleteItem(inName)
参数名称描述
inName被删除的联系人姓名。
cbDeleteItem(opId,dataType,data)
参数名称描述
opId操作ID,在此函数中不起作用,可忽略。
dataType返回数据的数据类型为uex.cInt(值为2)。
data返回的int型的数据,成功返回uex.cSuccess(值为0)或失败返回uex.cFailed(值为1)。
searchItem(inName)
参数名称描述
inName查找的联系人名字或联系人姓名中的关键字。如果输入的参数inName为空字符串,则返回所有的通讯录信息。
cbSearchItem(opId,dataType,data)
参数名称描述
opId操作ID,在此函数中不起作用,可忽略。
dataType返回数据的数据类型为uex.cJSON (值为1)。
data返回的数据,格式如下: [{'name':'xxxx','num':'13800138000','email':'xx@xx.com'...},{'name':'xxxx','num':'13800138000','email':'xx@xx.com'...}...]
modifyItem(inName,inNum,inEmail)
参数名称描述
inName修改的联系人名字。
inNum联系人被替换的电话号码。
inEmail联系人被替换的邮箱地址。
cbModifyItem(opId,dataType,data)
参数名称描述
opId操作ID,在此函数中不起作用,可忽略。
dataType返回数据的数据类型为uex.cInt (值为2)。
data返回的int型的数据,成功返回uex.cSuccess(值为0)或失败返回uex.cFailed(值为1)。
cbMultiOpen(opId,dataType,data)
参数名称描述
opId操作ID,在此函数中不起作用,可忽略
dataType成功时返回数据的数据类型为uex.cJSON (值为1)
data返回的数据,格式为:[{'name':'xxxx','num':'13800138000','email':'xx@xx.com',...}{'name':'xxxx','num':'13800138000','email':'xx@xx.com',...}...]
addItemWithVCard(vcard)

参数名称描述
vcardVcard的数据格式。
inNum联系人被替换的电话号码。
inEmail联系人被替换的邮箱地址。

// 本代码由寒暄提供,如有bug请和寒暄联系(QQ:457696322 Q群:7702175)
<!DOCTYPE html>
<html>
<head>
<title>AppCan API uexContact</title>
<meta charset='utf-8'>
<script>
    window.uexOnload = function(type){
        if(!type){
        }
    }
    function $$(id){
        return document.getElementById(id);
    }
    /**
     * 打开系统通讯录
     * 当选择某一联系人时返回此联系人信息json格式{}
     */
    function openContact(){
         uexContact.cbOpen=function(opCode,dataType,data){
             console.log('选择的联系人信息:'+data);
            if (dataType == 1) {
                var obj = eval('('+data+')');
                $$('show_id').innerHTML = '姓名:' +obj.name+'<br>电话:'+obj.num+'<br>邮箱:'+obj.email;
                //返回还可能包括obj.url;obj.company;obj.title;obj.note;obj.address(obj.address.State;obj.address.Street;obj.address.ZIP)
            }
        }
         uexContact.open();
    }
    /**
     * 添加联系人
     */
    function addItem(){
        var Mail = $$('addMail').value;
        if(!/^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/.test(Mail)){
            console.log('Email格式不正确');
            return;
        }
        uexContact.cbAddItem = function(opCode, dataType, data){
            if(dataType==2 && data==0){
                console.log('添加成功');
            }else{
                console.log('添加失败');
            }
        }
        uexContact.addItem($$('addName').value,$$('addTel').value,Mail);
    }
    /**
     * 通过联系人姓名删除联系人
     */
    function deleteItem(){
        uexContact.cbDeleteItem = function(opCode, dataType, data){
            if(dataType==2 && data==0){
                console.log('删除成功');
            }else{
                console.log('删除失败');
            }
        }
        uexContact.deleteItem($$('delName').value);
    }
    /**
     * 查找联系人
     * 支持模糊查询
     */
    function searchItem(){
        var searchName = $$('searchName').value;
        uexContact.cbSearchItem=function(opCode,dataType,data){
            if (dataType == 1) {
                var obj = eval('('+data+')');//[{},{}]识别模糊搜索,返回json数组字符串
                console.log('搜索的联系人信息:'+data);
            }
        }
        uexContact.searchItem(searchName);
    }
    /**
     * 修改联系人的信息
     * 通过联系人的姓名更改该联系人的电话及邮箱
     */
    function modifyItem(){
        var Mail = $$('modifyMail').value;
        if(!/^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/.test(Mail)){
            console.log('Email格式不正确');
            return;
        }
        uexContact.cbModifyItem = function(opCode, dataType, data){
            if(dataType==2 && data==0){
                console.log('修改成功');
            }else{
                console.log('修改失败');
            }
        }
        uexContact.modifyItem($$('modifyName').value,$$('modifyTel').value,Mail);
    }
    /**
     * 可多选打开通讯录
     * 该方式打开通讯录,可多选联系人
     */
    function multiOpen(){
        uexContact.cbMultiOpen=function(opCode,dataType,data){
            if (dataType == 1) {
                var obj = eval('('+data+')');//[{},{}],返回json数组字符串
                console.log('选择的联系人信息:'+data);
            }
        }
        uexContact.multiOpen();
    }
    /**
     * VCard方式添加联系人
     * 二维码名片上的信息为标准的VCard格式信息,可通过扫描二维码获取此信息后添加到联系人
     * 注意:如使用本平台的二维码插件返回的信息info需要转换后再添加到联系人
     * 如:info = info.replace(/\\\n/g,'|');
     *var a = JSON.parse(info);
     *var t = a.code.replace(/\|/g,'\n');
     *uexContact.addItemWithVCard(t);
     */
    function addItemWithVCard(){
        var vcardInfo = 'BEGIN:VCARD\nVERSION:3.0\nN:正益;无线\nTEL:010-57580888\nEMAIL:zywx@3g2win.com\nADR:;;中关村大街19号;;北京;100086\nORG:正益无线(北京)科技有限公司\nTITLE:客户经理\nURL:appcan.cn\nNOTE:名牌二维码\nEND:VCARD';
        uexContact.cbAddItem = function(opCode, dataType, data){
            if(dataType==2 && data==0){
                console.log('添加成功');
            }else{
                console.log('添加失败');
            }
        }
        uexContact.addItemWithVCard(vcardInfo);
    }
</script>
</head>
<body>
    <span>联系人</span><br/>
    <span>1.打开通讯录</span><br/>
    <input type='button' value='打开通讯录' onclick='openContact()'/><br/>
    <span>选择的联系人信息:<em id='show_id'></em></span><br/>
    <span>2.添加联系人</span><br/>
    姓名:<input type='text' id='addName' value='ZYWX'/><br/>
    号码:<input type='text' id='addTel' value='10086'/><br/>
    邮箱:<input type='text' id='addMail' value='xwcc@vip.qq.com'/><br/>
    <input type='button' value='添加联系人' onclick='addItem()'/><br/>
    <span>3.删除联系人</span><br/>
    姓名:<input type='text' id='delName' value='ZYWX'/><br/>
    <input type='button' value='删除联系人' onclick='deleteItem()'/><br/>
    <span>4.搜索联系人</span><br/>
    姓名:<input type='text' id='searchName' value='Z'/><br/>
    <input type='button' value='搜索联系人' onclick='searchItem()'/><br/>
    <span>5.修改联系人</span><br/>
    姓名:<input type='text' id='modifyName' value='ZYWX'/><br/>
    号码:<input type='text' id='modifyTel' value='10010'/><br/>
    邮箱:<input type='text' id='modifyMail' value='xwcc@vip.qq.com'/><br/>
    <input type='button' value='修改联系人' onclick='modifyItem()'/><br/>
    <span>6.打开可多选通讯录</span><br/>
    <input type='button' value='打开可多选通讯录' onclick='multiOpen()'/><br/>
    <span>7.VCard方式添加联系人:</span><br/>
    <input class='btn' type='button' value='VCard添加联系人' onclick='addItemWithVCard()'/><br/>
</body>
</html>