"%@?%ld&%@",INTERNET_URL,BCConversationTypeChat,INTRANET_ID] size:_qrImgView.bounds.size];该Url地址的生成依靠当前聊天类型,联系人ID拼凑而成,该方法生成的对象是UIImage对象,我们不需要做额外处理,可以用ImageView直接显示该生成的二维码图片。二维码扫描过程为:1.为设备会话新建对象,该对象用来设置设备数据输入。2.获取设备摄像头,将摄像头对象加入到当前会话中。3.将实时获取得到的图像显示在屏幕上。、4.通过协议回调的方式,将扫描到二维码数据,传递给需要改数据对象。本系统实现摄像头扫描好友添加,扫描本地相册二维码图片两种功能。摄像头扫描功能实现,在类ScanViewController.m中调用第三方库函数实现扫描,在视图出现后,调用扫描函数,检测设备时候获取摄像头权限,如果没有权限,提示用户开启摄像头权限。完成授权,新建扫描封装对象:self.scanObj = [[LBXScanWrapper alloc]initWithPreView:self.viewArrayObjectType:nilcropRect:cropRectsuccess:^(NSArray *array){ [weakSelf scanResultWithArray:array];}];生成扫描对象。在Block回调中处理扫描的数据,扫描的数据以数组形式返回,扫描对象可同时识别两个图片,不能同时识别二维码与条形码,LBXScanResult *scanResult = array[0];NSString*strResult = scanResult.strScanned;通过上面的代码可以将获取到的二维码数据转化为string类型数据,将该地址分离,使用“?”标识符将string分为两部分,后半部分通过& 分离出联系人intranetID,根据intanetID查找该联系人是否在列表,不再列表中,网络请求联系人Profile,做进一步的操作[23]。二维码图片的识别实现,打开本地相册,在imagePickerController中选中一张图片并识别:__block UIImage* image = [info objectForKey:UIImagePickerControllerEditedImage];if (!image){image = [info objectForKey:UIImagePickerControllerOriginalImage];}| 欢迎光临 mobile CCTV,mobile surveillance,police body worn cameras (http://bbs.besovideo.com:8067/) | Powered by Discuz! X3.2 |