二维码扫描器
一款同时适用于iOS和Android的QR码扫描器,通过原生嵌入平台视图在Flutter中实现。与Flutter的集成非常流畅,远胜于跳转到原生Activity或ViewController来执行扫描。
截图
| Android | |
|---|---|
|
|
|
| iOS | |
|
|
|
获取扫描到的二维码
当识别到二维码时,识别出的文本将设置在“qrText”中。
class _QRViewExampleState extends State<QRViewExample> {
final GlobalKey qrKey = GlobalKey(debugLabel: 'QR');
var qrText = "";
QRViewController controller;
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: <Widget>[
Expanded(
flex: 5,
child: QRView(
key: qrKey,
onQRViewCreated: _onQRViewCreated,
),
),
Expanded(
flex: 1,
child: Center(
child: Text('Scan result: $qrText'),
),
)
],
),
);
}
void _onQRViewCreated(QRViewController controller) {
this.controller = controller;
controller.scannedDataStream.listen((scanData) {
setState(() {
qrText = scanData;
});
});
}
@override
void dispose() {
controller?.dispose();
super.dispose();
}
}
iOS 集成
要使用此插件,请将以下内容添加到您的Info.plist文件中
<key>io.flutter.embedded_views_preview</key>
<true/>
翻转相机(后置/前置)
默认相机是后置相机。
controller.flipCamera();
闪光灯(关闭/开启)
默认情况下,闪光灯是关闭的。
controller.toggleFlash();
恢复/暂停
暂停相机流和扫描器。
controller.pause();
恢复相机流和扫描器。
controller.resume();
待办事项
- iOS原生嵌入是根据本软件包发布日期时框架支持的内容编写的。随着框架支持的改进,它需要得到改进。
- 未来将提供默认状态的选项。
- 最后,我欢迎PR来使其变得更好:),谢谢