作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
Square 的新名片盒 iOS 应用程序具有“创建帐户”功能。点击它,它会显示一个预先填充了用户地址簿条目的表单。
这怎么可能?有人知道吗?我认为这是不可能的,以这种方式获取用户信息。这不是 iOS 5.0 的东西,afaict。
最佳答案
我能想到的唯一解决方案是使用设备名称,然后在地址簿中搜索匹配项。这假设有人会使用特定的命名约定。例如,我使用“Nik's iPhone”作为我的设备名称。我也是我的地址簿中唯一的 Nik,因此对于我的场景来说,使用 's 之前的文本作为所有者名称效果很好。
它使用了 Erica Sadun 的 ABAddressBook 非常方便的包装器,ABContactHelper .我保留了枚举代码,而不是在 0 处使用数组索引,因为可能会返回少量匹配项,因此您可以扩展以让用户可以选择“他们的”详细信息。虽然与方形案例解决方案不完全匹配,但效果很好。恕我直言。
NSString *firstname;
NSString *lastname;
NSString *ownerName = [[UIDevice currentDevice] name];
NSRange t = [ownerName rangeOfString:@"'s"];
if (t.location != NSNotFound) {
ownerName = [ownerName substringToIndex:t.location];
}
NSArray *matches = [ABContactsHelper contactsMatchingName:ownerName];
if(matches.count == 1){
for (ABContact *contact in matches){
firstname = [contact firstname];
lastname = [contact lastname];
}
}
关于ios - Square 的 CardCase 应用程序如何自动填充地址簿中的用户详细信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8000927/
我是一名优秀的程序员,十分优秀!