起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2358|回复: 12

[结贴] 求助:读取电话本报错

[复制链接]

11

主题

38

帖子

108

积分

初级会员

Rank: 2

积分
108
QQ
发表于 2017-1-23 12:25:11 | 显示全部楼层 |阅读模式
Model.prototype.allbtnClick = function(event){
                var me = this;
                var options = new ContactFindOptions();
                options.filter = "";
                options.multiple = true;
                var fields = ["displayName" , "phoneNumbers"];
                navigator.contacts.find(fields, contactfindSuccess, contactfindError, options);
                function contactfindSuccess(contacts)
                {
                        for (var i = 0; i< contacts.length; i++ ){  //循环到某个电话会出现错误
                        var phone = contacts[i].phoneNumbers[0];
                        var pname1 = contacts[i].displayName;
                        if ( phone && pname1 ){
                         me.result.push({
                         p_name : contacts[i].displayName,
                         p_phone : contacts[i].phoneNumbers[0].value
                         });
                        alert("扫描成功" + i + ":" + contacts[i].phoneNumbers[0].value);
                        }
                        }

                        }
                function contactfindError(message){
               
                        alert("扫描错误" + message);
                }
}
当循环到某条电话本记录的时候log会报错:

Error in Success callbackid:Contacts1577190542:TypeError: cannot read property '0' of null

1

主题

1831

帖子

821

积分

高级会员

Rank: 4

积分
821
QQ
发表于 2017-1-23 13:25:45 | 显示全部楼层
可以打个断点跟踪一下,应该是 contacts[i]没有获取到值导致的
回复 支持 反对

使用道具 举报

11

主题

38

帖子

108

积分

初级会员

Rank: 2

积分
108
QQ
 楼主| 发表于 2017-1-23 14:46:05 | 显示全部楼层
应该是contacts[i]获取到了空值,小弟新手,怎么判断是空值呢?
回复 支持 反对

使用道具 举报

1

主题

1831

帖子

821

积分

高级会员

Rank: 4

积分
821
QQ
发表于 2017-1-23 15:11:02 | 显示全部楼层
contacts[i]==undefined
回复 支持 反对

使用道具 举报

11

主题

38

帖子

108

积分

初级会员

Rank: 2

积分
108
QQ
 楼主| 发表于 2017-1-23 15:46:25 | 显示全部楼层
contacts[i]===undefined 试过了,一样报错
回复 支持 反对

使用道具 举报

1

主题

1831

帖子

821

积分

高级会员

Rank: 4

积分
821
QQ
发表于 2017-1-23 15:53:10 | 显示全部楼层
那你把报错信息贴一下吧
回复 支持 反对

使用道具 举报

11

主题

38

帖子

108

积分

初级会员

Rank: 2

积分
108
QQ
 楼主| 发表于 2017-1-23 16:23:08 | 显示全部楼层
读取contacts[i].phoneNumbers[0],但这个电话取不到值的话就会报错
Uncaught TypeError:cannot read property '0' of null /cordova.js:312:13
Error in Success callbackid:Contacts1577190542:TypeError: cannot read property '0' of null
回复 支持 反对

使用道具 举报

1

主题

1831

帖子

821

积分

高级会员

Rank: 4

积分
821
QQ
发表于 2017-1-23 16:25:12 | 显示全部楼层
在循环里面判断contacts[i]是不是空值也会出现同样的报?
回复 支持 反对

使用道具 举报

11

主题

38

帖子

108

积分

初级会员

Rank: 2

积分
108
QQ
 楼主| 发表于 2017-1-23 16:29:44 | 显示全部楼层
我用华为的手机测试的,只要联系人的contacts[i].phoneNumbers[0]值是正常的就不会出错,如果联系人没有任何电话信息,运行下面的语句全部报错,
Uncaught TypeError:cannot read property '0' of null /cordova.js:312:13
Error in Success callbackid:Contacts1577190542:TypeError: cannot read property '0' of null

if (contacts[i].phoneNumbers[0] === '')
if (contacts[i].phoneNumbers[0] === undefined)
if (contacts[i].phoneNumbers[0] === null)
if (contacts[i].phoneNumbers[0] === 0)
回复 支持 反对

使用道具 举报

1

主题

1831

帖子

821

积分

高级会员

Rank: 4

积分
821
QQ
发表于 2017-1-23 16:34:42 | 显示全部楼层
你把这个判断写到哪儿了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-4-20 12:42 , Processed in 0.057109 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表