如何通过Phonegap使用iOS格式查找联系人的电话号码
how to find contact's phone number with iOS formatting though Phonegap?
所以我在尝试使用 Cordova Phonegap 搜索联系人时遇到问题,以查找 IOS 设备上包含区号和/或国家/地区代码的电话号码。
例如:我与#1(718)555-5555有联系。当我显示该联系人信息(通过使用contacts.find()通过电话间隙)时,电话号码字符串显示为"1(718)555-5555"。但是如果我尝试使用"1(718)555-5555"进行搜索,Phonegap找不到它。
可以找到没有国家代码和区号的号码,例如"555-5555"。
iOS 中包含区号和/或国家/地区代码的电话号码究竟如何存储?
function findContact(num) {
if (!navigator.contacts) {
console.log("Contacts API not supported");
return;
}
var options = new ContactFindOptions();
options.filter = num;
options.multiple = true;
var fields = ["phoneNumbers"];
navigator.contacts.find(fields, function(contacts) {
if (contacts.length == 0) {
console.log('Contact not found, num ' + num);
}
else {
console.log('Found ' + contacts.length + ' contacts w/num: ' + num);
}
}, function(error){}, options);
}
*编辑*所以我将问题范围缩小到科尔多瓦联系人插件中的 CDVContact.m。在测试中多值字符串方法
valueArray = [self valuesForProperty:propId inRecord:self.record];
if (valueArray) {
NSString* valuesAsString = [valueArray componentsJoinedByString:@" "];
NSPredicate* containPred = [NSPredicate predicateWithFormat:@"SELF contains[cd] %@", testValue];
bFound = [containPred evaluateWithObject:valuesAsString]; }
valuesAsString 确实以 @"1 (555) 555-5555" 等格式正确显示,并且 testValue 字符串相同,但 bFound 的计算结果仍为 NO。
也许有一些与 valueArray 相关的元数据导致了错误?
所以我发现iOS电话号码中的空格是非阻塞空格,即 。必须使用 String.fromCharCode(160) 声明搜索字符串中的任何空格。
相关文章:
- 正在全局范围中查找JavaScript函数
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 在验证和发送邮件后更改联系人表单的 html
- 在不使用jquery的情况下查找页面中的所有锚点并附加函数
- es6 相当于下划线查找位置
- 在DOM中查找一个模式并替换它's的内容使用jquery
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 如何在不传递此信息的情况下查找被调用的元素
- Lodash 从值数组中查找数组中的值
- 如何使用JavaScript查找1和N之间的所有数字的总和
- 使用RegExp查找url中的字符
- 查找元素高度,包括边距
- 使用JS查找数组的平均值
- 查找最短和最长日期
- 猫鼬在特定记录中查找嵌套记录
- 使用javascript在MVC中查找网格长度时出错
- 在MS Dynamics CRM 2013中查找联系人,而不是电子邮件中的帐户
- 如何通过Phonegap使用iOS格式查找联系人的电话号码
- 创建一个类似于outlook电子邮件/联系人查找的组件
- 如何在CRM 2011 UR 12中将"客户查找"设置为"联系人"而不是&quo