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); }
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); }