支持一维码,二维码识别的Flutter插件开发:iOS & macOS

本文介绍了如何使用Swift开发Flutter iOS和macOS插件,支持一维码和二维码识别。内容包括Flutter插件下载、iOS和macOS的实现步骤,如初始化插件模板、添加依赖库、编写Swift代码、处理权限问题等。

过去几周,我分享了如何创建覆盖Windows, Linux, Android, Web的Flutter一维码,二维码插件,使用的编程语言包括C++JavaJavaScriptDart。本周将分享使用Swift实现Flutter iOS和macOS插件。

Flutter插件下载

https://pub.dev/packages/flutter_barcode_sdk

感兴趣的可以like下。

Flutter iOS, macOS插件实现

上周为了实现Linux插件,开发平台从Windows切换到Linux。本周要实现macOS和iOS插件,开发平台切换到macOS。

iOS

初始化插件模板:

flutter create --template=plugin --platforms=ios .

这条命令会生成一个flutter_barcode_sdk.podspec文件和Classes目录。flutter_barcode_sdk.podspec是工程配置文件,Classes包含了平台相关的初始代码。

打开工程配置文件添加依赖库。这里有两种方法:

  • 添加dependency

    s.dependency 'DynamsoftBarcodeReader'
    
  • 添加vendored_frameworks

    s.vendored_frameworks = 'DynamsoftBarcodeReader.framework'
    

这里的差别是dependency可以触发pod install来安装依赖,而vendored_frameworks需要把依赖的framework放在本地。Flutter对上传的包有100 MB的尺寸限制,如果使用vendored_frameworks可能会因为尺寸过大无法上传。如果使用dependency编译失败,可以下载依赖库,并在配置文件中设置vendored_frameworks

打开Classes/SwiftFlutterBarcodeSdkPlugin.swift编写Swift代码。

导入依赖库,完成对象初始化:

import DynamsoftBarcodeReader

public override init() {
   
   
    super.init()
    let lts = iDMLTSConnectionParameters()
    lts.organizationID = "200001"
    reader = DynamsoftBarcodeReader(licenseFromLTS: lts, verificationDelegate: self)

    reader!.initRuntimeSettings(with: "{\"ImageParameter\":{\"Name\":\"Balance\",\"DeblurLevel\":5,\"ExpectedBarcodesCount\":512,\"LocalizationModes\":[{\"Mode\":\"LM_CONNECTED_BLOCKS\"},{\"Mode\":\"LM_SCAN_DIRECTLY\"}]}}", conflictMode: EnumConflictMode.overwrite, error:nil)
    let settings = try! reader!.getRuntimeSettings()
    settings.barcodeFormatIds = Int(EnumBarcodeFormat.ONED.rawValue) | Int(EnumBarcodeFormat.PDF417.rawValue) | Int(EnumBarcodeFormat.QRCODE.rawValue) | Int(EnumBarcodeFormat.DATAMATRIX.rawValue)
    reader!.update(settings, error: nil)
    reader!.setModeArgument("BinarizationModes", index: 0, argumentName: "EnableFillBinaryVacancy", argumentValue: "0", error: nil)
    reader!.setModeArgument("BinarizationModes", index
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值