詳解Flutter掃碼識(shí)別二維碼內(nèi)容
前面一篇寫了生成二維碼圖片,這篇來寫使用相機(jī)掃描識(shí)別二維碼
識(shí)別二維碼需要用到插件barcode_scan
首先在pubspec.yaml文件中添加以下依賴,添加依賴后在pubspec.yaml運(yùn)行flutter packages get或 使用IDE更新軟件包。
dependencies: ... barcode_scan: ^1.0.0
Android配置
在使用它之前需要先配置 android\app\src\main\AndroidManifest.xml
在該文件中添加添加app獲取相機(jī)權(quán)限及BarcodeScanner activity
<!--獲取相機(jī)權(quán)限--> <uses-permission android:name="android.permission.CAMERA" />
<activity android:name="com.apptreesoftware.barcodescan.BarcodeScannerActivity"/>
如下圖所示
編輯項(xiàng)目級(jí)build.gradle文件
buildscript { ext.kotlin_version = '1.2.31' ... dependencies { ... classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } ...
如圖所示
以及編輯應(yīng)用級(jí)build.gradle文件
apply plugin: 'kotlin-android' ... dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" ... }
如圖所示
注意 apply plugin: 'kotlin-android' 需要放在 apply plugin: 'com.android.application' 之后
IOS配置
在 Info.plist 中添加一下內(nèi)容
<key>NSCameraUsageDescription</key> <string>Camera permission is required for barcode scanning.</string>
掃碼實(shí)現(xiàn)
完成以上步驟之后在需要觸發(fā)掃碼的頁面引用barcode_scan
import 'package:barcode_scan/barcode_scan.dart';
然后寫上一個(gè)調(diào)用掃碼的方法
// 掃描二維碼 Future scan() async { try { // 此處為掃碼結(jié)果,barcode為二維碼的內(nèi)容 String barcode = await BarcodeScanner.scan(); print('掃碼結(jié)果: '+barcode); } on PlatformException catch (e) { if (e.code == BarcodeScanner.CameraAccessDenied) { // 未授予APP相機(jī)權(quán)限 print('未授予APP相機(jī)權(quán)限'); } else { // 掃碼錯(cuò)誤 print('掃碼錯(cuò)誤: $e'); } } on FormatException{ // 進(jìn)入掃碼頁面后未掃碼就返回 print('進(jìn)入掃碼頁面后未掃碼就返回'); } catch (e) { // 掃碼錯(cuò)誤 print('掃碼錯(cuò)誤: $e'); } }
在使用時(shí)觸發(fā)scan()方法即可,效果如下
默認(rèn)的右上角打開閃光燈的文字為英文,如果需要修改可以到Flutter目錄下修改以下相應(yīng)文件
Andriod文件
flutter\.pub-cache\hosted\pub.flutter-io.cn\barcode_scan-1.0.0\android\src\main\kotlin\com\apptreesoftware\barcodescan\BarcodeScannerActivity.kt flutter\.pub-cache\hosted\pub.flutter-io.cn\barcode_scan-1.0.0\android\src\main\kotlin\com\apptreesoftware\barcodescan\BarcodeScannerActivity.kt
如圖
IOS文件
flutter\.pub-cache\hosted\pub.flutter-io.cn\barcode_scan-1.0.0\ios\Classes\BarcodeScannerViewController.m
如圖
注:該插件也可以用來掃描條形碼
到此這篇關(guān)于Flutter掃碼識(shí)別二維碼內(nèi)容的文章就介紹到這了,更多相關(guān)Flutter掃碼二維碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android基礎(chǔ)之使用Fragment適應(yīng)不同屏幕和分辨率(分享)
以下是對(duì)Fragment的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下2013-07-07Android實(shí)現(xiàn)輸入法彈出時(shí)把布局頂上去和登錄按鈕頂上去的解決方法
這篇文章主要介紹了Android實(shí)現(xiàn)輸入法彈出時(shí)把布局頂上去和登錄按鈕頂上去的解決方法,需要的朋友可以參考下2017-11-11Android自定義照相機(jī)倒計(jì)時(shí)拍照
本文給大家介紹Android自定義照相機(jī),并且實(shí)現(xiàn)倒計(jì)時(shí)拍照功能,對(duì)android自定義照相機(jī)相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2015-12-12android基礎(chǔ)總結(jié)篇之八:創(chuàng)建及調(diào)用自己的ContentProvider
這篇文章主要介紹了android基礎(chǔ)總結(jié)篇之八:創(chuàng)建及調(diào)用自己的ContentProvider,有興趣的可以了解一下。2016-11-11Android自定義控件eBook實(shí)現(xiàn)翻書效果實(shí)例詳解
這篇文章主要介紹了Android自定義控件eBook實(shí)現(xiàn)翻書效果的方法,結(jié)合實(shí)例形式分析了Android自定義控件實(shí)現(xiàn)翻書效果的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2016-10-10android BottomSheetDialog新控件解析實(shí)現(xiàn)知乎評(píng)論列表效果(實(shí)例代碼)
BottomSheetDialog是一個(gè)自定義的從底部滑入的對(duì)話框,這篇文章主要介紹了android BottomSheetDialog新控件解析實(shí)現(xiàn)知乎評(píng)論列表效果,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04Android后臺(tái)模擬點(diǎn)擊探索(附源碼)
這篇文章主要介紹了Android后臺(tái)模擬點(diǎn)擊探索(附源碼),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-01-01