Реализация API Google Vision с Flutter - PullRequest
0 голосов
/ 27 июня 2018

Я не уверен, как включить это в существующий проект флаттера, и я не смог найти в Интернете никаких полезных руководств или советов. Я собираюсь реализовать сканер штрих-кода только для 2D, и ни один из существующих сканеров штрих-кода не имеет такой возможности.

Я знаю, что ZXing также имеет функциональность только 2d, так что я могу побудить его использовать, если кто-нибудь может указать мне, как их реализовать в флаттере

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Это можно сделать с помощью флаттера barcode_scan зависимость.

Future _openQRScanner() async {
try {
  // Below code will open camera preview and return result after qr scan 
  String _content = await BarcodeScanner.scan();
  setState(() => this._content = _content);
} on PlatformException catch (e) {
  if (e.code == BarcodeScanner.CameraAccessDenied) {
    showSnackBar('Please grant camera permission!');
    setState(() {
      this._content = null;
    });
  } else {
    showSnackBar('Error: $e');
    setState(() {
      this._content = null;
    });
  }
} on FormatException {
  showSnackBar('User pressed "back" button before scanning');
  setState(() {
    this._content = null;
  });
} catch (e) {
  showSnackBar('Error: $e');
  setState(() {
    this._content = null;
  });
}
}

enter image description here

enter image description here

Пожалуйста, найдите репо .

Если вы хотите взглянуть на Flutter, вы можете найти несколько хороших примеров на нашей странице компании Github . Также вы можете проверить страницу нашей компании FlutterDevs .

0 голосов
/ 28 июня 2018

Пожалуйста, проверьте этот URL

https://pub.dartlang.org/packages/qrcode_reader Вот код реализации

import 'dart:async';

import 'package:flutter/material.dart';
import 'package:qrcode_reader/QRCodeReader.dart';

void main() {
  runApp(new MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'QRCode Reader Demo',
      home: new MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  final Map<String, dynamic> pluginParameters = {
  };

  @override
  _MyHomePageState createState() => new _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  Future<String> _barcodeString;

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: const Text('QRCode Reader Example'),
      ),
      body: new Center(
          child: new FutureBuilder<String>(
              future: _barcodeString,
              builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
                return new Text(snapshot.data != null ? snapshot.data : '');
              })),
      floatingActionButton: new FloatingActionButton(
        onPressed: () {
          setState(() {
            _barcodeString = new QRCodeReader()
                .setAutoFocusIntervalInMs(200)
                .setForceAutoFocus(true)
                .setTorchEnabled(true)
                .setHandlePermissions(true)
                .setExecuteAfterPermissionGranted(true)
                .scan();
          });
        },
        tooltip: 'Reader the QRCode',
        child: new Icon(Icons.add_a_photo),
      ),
    );
  }
}
...