Example #1
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            // If no parameters were passed, we navigated here for some other reason
            // so let's ignore it
            if (e.Parameter == null)
            {
                return;
            }

            Parameters = e.Parameter as ScanPageNavigationParameters;

            if (Parameters != null)
            {
                Parameters.Scanner.ScanPage = this;
            }

            scannerControl.TopText    = Parameters?.Scanner?.TopText ?? "";
            scannerControl.BottomText = Parameters?.Scanner?.BottomText ?? "";

            scannerControl.CustomOverlay    = Parameters?.Scanner?.CustomOverlay;
            scannerControl.UseCustomOverlay = Parameters?.Scanner?.UseCustomOverlay ?? false;

            scannerControl.ScanningOptions    = Parameters?.Options ?? new MobileBarcodeScanningOptions();
            scannerControl.ContinuousScanning = Parameters?.ContinuousScanning ?? false;

            scannerControl.StartScanning(Parameters?.ResultHandler, Parameters?.Options);
        }
Example #2
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            // If no parameters were passed, we navigated here for some other reason
            // so let's ignore it
            if (e.Parameter == null)
                return;

            Parameters = e.Parameter as ScanPageNavigationParameters;

            if (Parameters != null)
                Parameters.Scanner.ScanPage = this;
            
            scannerControl.TopText = Parameters?.Scanner?.TopText ?? "";
            scannerControl.BottomText = Parameters?.Scanner?.BottomText ?? "";

            scannerControl.CustomOverlay = Parameters?.Scanner?.CustomOverlay;
            scannerControl.UseCustomOverlay = Parameters?.Scanner?.UseCustomOverlay ?? false;

            scannerControl.ScanningOptions = Parameters?.Options ?? new MobileBarcodeScanningOptions ();
            scannerControl.ContinuousScanning = Parameters?.ContinuousScanning ?? false;

            scannerControl.StartScanning(Parameters?.ResultHandler, Parameters?.Options);
        }
        async Task <Result> PlatformScan(MobileBarcodeScanningOptions options)
        {
            var rootFrame  = RootFrame ?? Window.Current.Content as Frame ?? ((FrameworkElement)Window.Current.Content).GetFirstChildOfType <Frame>();
            var dispatcher = Dispatcher ?? Window.Current.Dispatcher;

            var tcsScanResult = new TaskCompletionSource <Result>();

            await dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
            {
                var pageOptions = new ScanPageNavigationParameters
                {
                    Options       = options,
                    ResultHandler = r =>
                    {
                        tcsScanResult.SetResult(r);
                    },
                    Scanner            = this,
                    ContinuousScanning = false,
                    CameraInitialized  = () => { OnCameraInitialized?.Invoke(); },
                    CameraError        = (errors) => { OnCameraError?.Invoke(errors); }
                };
                rootFrame.Navigate(typeof(ScanPage), pageOptions);
            });

            var result = await tcsScanResult.Task;

            await dispatcher.RunAsync(CoreDispatcherPriority.High, () =>
            {
                if (rootFrame.CanGoBack)
                {
                    rootFrame.GoBack();
                }
            });

            return(result);
        }