Nano Hash - криптовалюты, майнинг, программирование

ZXing.Mobile.MobileBarcodeScanner.Cancel() не работает

Я разрабатываю мобильное приложение на Xamarin Forms для UWP, Android и IOS в Visual Studio.

В настоящее время я тестирую приложение на своем компьютере (Windows 10) и телефоне (также Windows 10).

Я использую Zxing MobileBarcodeScanner для сканирования нескольких штрих-кодов.

Когда я нажимаю кнопку «Назад», я вызываю MobileBarcodeScanner.Cancel().

Единственное, что он делает, это закрывает камеру. Он не удаляет пользовательский интерфейс MobileBarcodeScanner, и я не нашел для этого решения.

Может ли кто-нибудь помочь мне или предложить решение?

Кроме того, кнопка «Отмена» и кнопка «Флэш» не отображаются в пользовательском интерфейсе сканера.

Код:

private void showScanner()
{
    var scanner = new MobileBarcodeScanner(App.coreDispatcher)
    {
        UseCustomOverlay = false,
        TopText = "Hold camera up to barcode to scan",
        BottomText = "Barcode will automatically scan",
        CancelButtonText = "Done",
        FlashButtonText = "Flash"
    }

    var opt = new MobileBarcodeScanningOptions { DelayBetweenContinuousScans = 3000 };

    scanner.ScanContinuously(opt, HandleScanResult);
}

protected override bool OnBackButtonPressed()
{
    scanner.Cancel();
}

private void HandleScanResult(ZXing.Result result)
{
    string msg;
    if (result != null && !string.IsNullOrEmpty(result.Text)) // Success
    {
        msg = result.Text;
    }
    else // Canceled
    {
        msg = "Scanning Canceled!";
    }
}
22.07.2016

Ответы:


1

Единственное, что он делает, это закрывает камеру. Он не удаляет пользовательский интерфейс MobileBarcodeScanner, и я не нашел для этого решения.

В ваших фрагментах кода есть проблема. В методе showScanner() вы определили переменную scanner, но в методе OnBackButtonPressed() похоже, что вы использовали глобальную переменную, также называемую scanner.

Возможно, следующий способ должен быть правильным:

MobileBarcodeScanner scanner;

private void showScanner(){
    scanner = new MobileBarcodeScanner(App.coreDispatcher) //Here, remove var
    {
        ......
    }

}
protected override bool OnBackButtonPressed()
{
    scanner.Cancel();
}

И если вы проверили пример Xamarin.Forms

Он использует ZXingScannerPage для размещения вашего макета и обработки некоторых логических операций, включая Cancel и ToggleTorch и т. д., см. /HomePage.cs#L13" rel="nofollow">здесь

Кроме того, кнопка «Отмена» и кнопка «Флэш» не отображаются в пользовательском интерфейсе сканера.

Используйте пользовательское наложение, просто установите для свойства MobileBarcodeScanner.UseCustomOverlay значение true и проверьте пример кода в здесь

А также Начало работы с ZXing.Net.Mobile.

25.07.2016
  • Я использую MobileBarcodeScanner для сканирования нескольких штрих-кодов одновременно. ZXingScannerPage каждый раз поддерживает только одно сканирование. Также нет никакого способа сделать ZXingScannerPage для обработки MobileBarcodeScanner. Как я видел здесь github.com/Redth/ZXing.Net.Mobile/issues /366 это распространенная проблема с UWP 25.07.2016
  • Также мой код основан на этом примере forums.xamarin.com/discussion/ 49643/ 25.07.2016
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..