全部产品
云市场
云游戏

快速开始

更新时间:2020-09-14 15:00:33

扫一扫 SDK 是支付宝目前正在使用的识别二维码、条形码等功能的 SDK 。本文将向您介绍如何使用扫一扫 SDK。

前置条件

您已经根据您的接入方式,将扫一扫组件 SDK 添加至工程。更多信息,请参见以下内容:

添加 SDK

根据您采用的接入方式,请选择相应的添加方式。

  • 使用 mPaaS Xcode Extension。
    此方式适用于采用了 基于 mPaaS 框架接入基于已有工程且使用 mPaaS 插件接入 的接入方式。
    1. 点击 Xcode 菜单项 Editor > mPaaS > 编辑工程,打开编辑工程页面。
    2. 选择 扫码,保存后点击 开始编辑,即可完成添加。
  • 使用 cocoapods-mPaaS 插件。此方式适用于采用了 基于已有工程且使用 CocoaPods 接入 的接入方式。
    1. 在 Podfile 文件中,使用 mPaaS_pod "mPaaS_ScanCode" 添加扫码组件依赖。
    2. 执行 pod install 即可完成接入。

使用 SDK( ≥ 10.1.68.17 )

本文将结合 扫一扫 官方 Demo 介绍如何在 10.1.68.17 及以上版本的基线中使用扫一扫 SDK。

操作步骤

  1. 唤起默认扫码页面并处理扫描结果。

    1. @interface MPScanDemoVC()<TBScanViewControllerDelegate>
    2. @property(nonatomic, strong) TBScanViewController *scanVC;
    3. @end
    4. - (void)defaultScan {
    5. TBScanViewController *vc = [[MPScanCodeAdapterInterface sharedInstance] createDefaultScanPageWithallback:^(id _Nonnull result, BOOL keepAlive) {
    6. // 处理扫描结果
    7. UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"" message:result[@"resp_result"] delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
    8. alert.tag = 1999;
    9. [alert show];
    10. }];
    11. [self.navigationController pushViewController:vc animated:YES];
    12. self.scanVC = vc;
    13. }
  2. 持续扫码。

    1. - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
    2. // 持续扫码
    3. [self.scanVC resumeScan];
    4. }

使用 SDK( < 10.1.68.17 )

本文将结合 扫一扫 官方 Demo 介绍如何在 10.1.68.17 以下版本的基线中使用扫一扫 SDK。

操作步骤

  1. 唤起扫码界面。
    1. @interface MPScanDemoVC()<TBScanViewControllerDelegate>
    2. @property(nonatomic, strong) TBScanViewController *scanVC;
    3. @end
    4. - (void)startDefauleScanViewController
    5. {
    6. TBScanViewController *vc = [[TBScanViewController alloc] init];
    7. vc.scanType = ScanType_All_Code;
    8. vc.delegate = self;
    9. [self.navigationController pushViewController:vc animated:YES];
    10. self.scanVC = vc;
    11. }
  2. 处理扫描结果。

    1. #pragma mark 处理扫描结果
    2. -(void)didFind:(NSArray<TBScanResult*>*)resultArray
    3. {
    4. if([resultArray count] > 0) {
    5. TBScanResult *result = resultArray.firstObject;
    6. NSString* content = result.data;
    7. dispatch_async(dispatch_get_main_queue(), ^{
    8. // 注意:扫码的结果是在子线程,如有UI相关操作,请切换到主线程
    9. UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"" message:content delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
    10. [alert show];
    11. });
    12. }
    13. }
  3. 持续扫码。
    1. #pragma mark alert
    2. - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
    3. [self.scanVC resumeScan];
    4. }