public ZXingScannerPage (MobileBarcodeScanningOptions options = null, View customOverlay = null) : base () { zxing = new ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, Options = options }; zxing.OnScanResult += (result) => { var eh = this.OnScanResult; if (eh != null) eh(result); //Device.BeginInvokeOnMainThread (() => eh (result)); }; if (customOverlay == null) { defaultOverlay = new ZXingDefaultOverlay { TopText = "Hold your phone up to the barcode", BottomText = "Scanning will happen automatically", ShowFlashButton = zxing.HasTorch, }; defaultOverlay.FlashButtonClicked += (sender, e) => { zxing.IsTorchOn = !zxing.IsTorchOn; }; Overlay = defaultOverlay; } else { Overlay = customOverlay; } var grid = new Grid { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, }; grid.Children.Add(zxing); grid.Children.Add(Overlay); // The root page of your application Content = grid; }
public ZXingScannerPage (MobileBarcodeScanningOptions options = null, View customOverlay = null) : base () { zxing = new ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, Options = options, AutomationId = "zxingScannerView" }; zxing.SetBinding( ZXingScannerView.IsTorchOnProperty, new Binding( nameof( IsTorchOn ) ) ); zxing.SetBinding( ZXingScannerView.IsAnalyzingProperty, new Binding( nameof( IsAnalyzing ) ) ); zxing.SetBinding( ZXingScannerView.IsScanningProperty, new Binding( nameof( IsScanning ) ) ); zxing.SetBinding( ZXingScannerView.HasTorchProperty, new Binding( nameof( HasTorch ) ) ); zxing.SetBinding( ZXingScannerView.ResultProperty, new Binding( nameof( Result ) ) ); zxing.OnScanResult += (result) => { this.OnScanResult?.Invoke( result ); //Device.BeginInvokeOnMainThread (() => eh (result)); }; if (customOverlay == null) { defaultOverlay = new ZXingDefaultOverlay () { AutomationId = "zxingDefaultOverlay" }; defaultOverlay.SetBinding( ZXingDefaultOverlay.TopTextProperty, new Binding( nameof( DefaultOverlayTopText ) ) ); defaultOverlay.SetBinding( ZXingDefaultOverlay.BottomTextProperty, new Binding( nameof( DefaultOverlayBottomText ) ) ); defaultOverlay.SetBinding( ZXingDefaultOverlay.ShowFlashButtonProperty, new Binding( nameof( DefaultOverlayShowFlashButton ) ) ); DefaultOverlayTopText = "Hold your phone up to the barcode"; DefaultOverlayBottomText = "Scanning will happen automatically"; DefaultOverlayShowFlashButton = HasTorch; defaultOverlay.FlashButtonClicked += (sender, e) => { zxing.IsTorchOn = !zxing.IsTorchOn; }; Overlay = defaultOverlay; } else { Overlay = customOverlay; } var grid = new Grid { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, }; grid.Children.Add(zxing); grid.Children.Add(Overlay); // The root page of your application Content = grid; }
private void ZXingDefaultOverlay_FlashButtonClicked(object sender, System.EventArgs e) { ZXingScannerView.ToggleTorch(); }
public StockScan() { InitializeComponent(); zxing = new ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, AutomationId = "zxingScannerView", }; zxing.OnScanResult += (result) => Device.BeginInvokeOnMainThread(async() => { // Stop analysis until we navigate away so we don't keep reading barcodes zxing.IsAnalyzing = false; // Show an alert await DisplayAlert("Scanned Barcode", result.Text, "OK"); }); overlay = new ZXingDefaultOverlay { TopText = "Hold your phone up to the barcode", BottomText = "Scanning will happen automatically", ShowFlashButton = zxing.HasTorch, AutomationId = "zxingDefaultOverlay", }; overlay.FlashButtonClicked += (sender, e) => { zxing.IsTorchOn = !zxing.IsTorchOn; }; var grid = new Grid { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, }; var stopButton = new Button { WidthRequest = 100, HeightRequest = 50, HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.End, Text = "disable", Command = new Command(() => zxing.IsScanning = false) }; var cancelButton = new Button { WidthRequest = 100, HeightRequest = 50, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.End, Text = "cancel", Command = new Command(async() => await Navigation.PopAsync()) }; var startButton = new Button { WidthRequest = 100, HeightRequest = 50, HorizontalOptions = LayoutOptions.End, VerticalOptions = LayoutOptions.End, Text = "enable", Command = new Command(() => zxing.IsScanning = true) }; grid.Children.Add(zxing); grid.Children.Add(overlay); grid.Children.Add(startButton); grid.Children.Add(cancelButton); grid.Children.Add(stopButton); // The root page of your application Content = grid; }
private void InitializeComponent() { ZXReader = new ZXingScannerView { AutomationId = "ZXingScannerView", InputTransparent = true, IsAnalyzing = ViewModel.IsAnalyzing, IsScanning = ViewModel.IsScanning, IsTorchOn = true }; ZXOverlay = new ZXingDefaultOverlay { AutomationId = "ZXingDefaultOverlay", BackgroundColor = Color.Transparent, BottomText = "Aponte para o Qr Code", TopText = "Registrar ponto" }; GrdLeitor = new Grid { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, Children = { ZXReader, ZXOverlay } }; LblMensager = new Label { HorizontalOptions = LayoutOptions.CenterAndExpand, VerticalOptions = LayoutOptions.Start, Text = "kiko" }; ImageLoad = new FFImageLoading.Svg.Forms.SvgCachedImage { Source = "loading.gif", HorizontalOptions = LayoutOptions.CenterAndExpand, VerticalOptions = LayoutOptions.Start, Scale = 3 }; BtnTentarNovamente = new Button { HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Start, BackgroundColor = Color.Transparent, IsVisible = false, Text = "Tentar Novamente" }; StlLoader = new StackLayout { IsVisible = false, VerticalOptions = LayoutOptions.StartAndExpand, HorizontalOptions = LayoutOptions.CenterAndExpand, Children = { LblMensager, new AbsoluteLayout { VerticalOptions = LayoutOptions.CenterAndExpand, HorizontalOptions = LayoutOptions.CenterAndExpand, Children = { ImageLoad } }, BtnTentarNovamente } }; StlLeitor = new StackLayout() { BackgroundColor = Color.Transparent, Children = { GrdLeitor, StlLoader } }; }
public ScanPage(Action <string> callback) : base(updateActivity: false, requireAuth: false) { _zxing = new ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, AutomationId = "zxingScannerView", Options = new ZXing.Mobile.MobileBarcodeScanningOptions { UseNativeScanning = true, PossibleFormats = new List <ZXing.BarcodeFormat> { ZXing.BarcodeFormat.QR_CODE }, AutoRotate = false } }; _zxing.OnScanResult += (result) => { // Stop analysis until we navigate away so we don't keep reading barcodes _zxing.IsAnalyzing = false; _zxing.IsScanning = false; Uri uri; if (!string.IsNullOrWhiteSpace(result.Text) && Uri.TryCreate(result.Text, UriKind.Absolute, out uri) && !string.IsNullOrWhiteSpace(uri.Query)) { var queryParts = uri.Query.Substring(1).ToLowerInvariant().Split('&'); foreach (var part in queryParts) { if (part.StartsWith("secret=")) { callback(part.Substring(7)?.ToUpperInvariant()); return; } } } callback(null); }; _overlay = new OverlayGrid { AutomationId = "zxingDefaultOverlay" }; _overlay.TopLabel.Text = AppResources.CameraInstructionTop; _overlay.BottomLabel.Text = AppResources.CameraInstructionBottom; var grid = new Grid { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, Children = { _zxing, _overlay } }; if (Device.RuntimePlatform == Device.iOS || Device.RuntimePlatform == Device.UWP) { ToolbarItems.Add(new DismissModalToolBarItem(this, AppResources.Close)); } Title = AppResources.ScanQrTitle; Content = grid; }
public MyResultHandler(Barcode barcode, ZXingScannerView scannerView) { this.barcode = barcode; this.scannerView = scannerView; }
public CustomScanPage() : base() { result = null; zxing = new ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand }; SetScanOptions(); zxing.OnScanResult += Zxing_OnScanResult; var torch = new Button { Text = Language.GetText("Torch"), HorizontalOptions = LayoutOptions.FillAndExpand, TextColor = Color.White }; torch.Clicked += delegate { zxing.ToggleTorch(); }; var abort = new Button { Text = Language.GetText("Cancel"), HorizontalOptions = LayoutOptions.FillAndExpand, TextColor = Color.White }; abort.Clicked += delegate { zxing.RaiseScanResult(null); }; var customOverlayTop = new StackLayout { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, BackgroundColor = Color.Black, Opacity = 0.7, Children = { new Label { HeightRequest = 20, }, new Label { Text = Language.GetText("AppTitle"), HorizontalTextAlignment = TextAlignment.Center, HorizontalOptions = LayoutOptions.CenterAndExpand, TextColor = Color.White }, new Label { Text = "Scan QR code...", HorizontalTextAlignment = TextAlignment.Center, HorizontalOptions = LayoutOptions.CenterAndExpand, TextColor = Color.White } } }; var customOverlayCenter = new Grid { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, Opacity = 0.6, Children = { new Image { VerticalOptions = LayoutOptions.CenterAndExpand, HorizontalOptions = LayoutOptions.Center, Source = "scanl1.png", Aspect = Aspect.AspectFit }, new Image { VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.CenterAndExpand, Source = "scanl2.png", Aspect = Aspect.AspectFill } } }; var customOverlayBottom = new StackLayout { Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, BackgroundColor = Color.Black, Opacity = 0.7, Padding = new Thickness(0, 10, 0, 10), }; customOverlayBottom.Children.Add(abort); //if(zxing.HasTorch) customOverlayBottom.Children.Add(torch); BUG on library, this returns always FALSE customOverlayBottom.Children.Add(torch); var customOverlay = new Grid { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, RowDefinitions = new RowDefinitionCollection { new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }, new RowDefinition { Height = new GridLength(2, GridUnitType.Star) }, new RowDefinition { Height = new GridLength(1, GridUnitType.Star) } }, Children = { customOverlayTop, customOverlayCenter, customOverlayBottom } }; Grid.SetRow(customOverlayTop, 0); Grid.SetRow(customOverlayCenter, 1); Grid.SetRow(customOverlayBottom, 2); var grid = new Grid { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, }; grid.Children.Add(zxing); grid.Children.Add(customOverlay); // The root page of your application Content = grid; }
public QRScanPage() { InitializeComponent(); Padding = Device.OnPlatform(new Thickness(0, 20, 0, 0), new Thickness(), new Thickness()); zxing = new ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand }; zxing.OnScanResult += (result) => Device.BeginInvokeOnMainThread(async() => { // Stop analysis until we navigate away so we don't keep reading barcodes zxing.IsAnalyzing = false; zxing.IsScanning = false; // Store result to db string name = AddToDB(result.Text); var answer = await DisplayAlert("Message", name + " Scanned!", "Done", "Export"); // Export if (!answer) { // export data to contacts IAddContactsInfo addContacts = DependencyService.Get <IAddContactsInfo>(); bool exResult = addContacts.AddContacts(qc); if (exResult) { await DisplayAlert("Confirm", "The contact information has been sucessfully exported", "OK"); } else { await DisplayAlert("ERROR", "Exporting Fail", "OK"); } } // Navigate away await Navigation.PopModalAsync(); }); overlay = new ZXingDefaultOverlay { TopText = "Hold your phone up to the barcode", BottomText = "Scanning will happen automatically", ShowFlashButton = false }; var grid = new Grid(); grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }); grid.RowDefinitions.Add(new RowDefinition { Height = 50 }); Button cancelBtn = new Button { Text = "Cancel", HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand }; cancelBtn.Clicked += OnCancelBtnClicked; grid.Children.Add(zxing, 0, 0); grid.Children.Add(overlay, 0, 0); grid.Children.Add(cancelBtn, 0, 1); // The root page of your application Content = grid; }
public Scan() : base() { zxing = new ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand }; zxing.OnScanResult += (result) => { while (scanTries <= 5) { if (ScanController.ProcessResult(result.Text)) { Debug.WriteLine("\nScans Succeed...\n"); break; } else { Debug.WriteLine("\nScanfailded...\n"); scanTries = (scanTries + 1); overlay.TopText = "Poging: " + scanTries; } } if (scanTries <= 5) { Device.BeginInvokeOnMainThread(async() => { await DisplayAlert("Succes~!", "Je account is succesvol gekoppeld", "Begrepen."); }); } else { Device.BeginInvokeOnMainThread(async() => { await DisplayAlert("Fout~!", "Je account kan niet worden gekoppeld, controleer je internetverbinding of probeer het later opnieuw.", "Begrepen."); }); } zxing.IsScanning = false; scanTries = 0; App.Current.MainPage = new NavigationPage(new NavMaster()); }; overlay = new ZXingDefaultOverlay { TopText = "Poging: " + scanTries, BottomText = "Even geduld a.u.b.", ShowFlashButton = zxing.HasTorch, }; overlay.FlashButtonClicked += (sender, e) => { zxing.IsTorchOn = !zxing.IsTorchOn; }; var grid = new Grid { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, }; grid.Children.Add(zxing); grid.Children.Add(overlay); Content = grid; }
public CustomScanPage() : base() { listview = new ListView { HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.CenterAndExpand, AutomationId = "listview", }; label = new Label { HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center, AutomationId = "label", TextColor = Color.White, FontSize = 40 }; ZXing.Mobile.MobileBarcodeScanningOptions scanningOptions = new ZXing.Mobile.MobileBarcodeScanningOptions { DelayBetweenContinuousScans = 2000 }; zxing = new ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.Start, Options = scanningOptions }; zxing.OnScanResult += (result) => Device.BeginInvokeOnMainThread(() => { //zxing.IsAnalyzing = false; //await DisplayAlert("扫描条码", result.Text, "OK"); HandleScanResult(result); // Navigate away //await Navigation.PopAsync(); }); overlay = new ZXingOverlay { //TopText = "请对准二维码", BottomText = "阴暗天气建议打开闪光灯", ShowFlashButton = true, ButtonText = "开灯" }; overlay.FlashButtonClicked += (sender, e) => { try { if (!zxing.IsTorchOn) { sender.Text = "关灯"; //CrossLampState = true; zxing.IsTorchOn = true; } else { sender.Text = "开灯"; zxing.IsTorchOn = false; } } catch (Exception) { } }; var grid = new Grid { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, }; grid.Children.Add(zxing, 0, 0); overlay.Children.Add(label, 0, 2); grid.Children.Add(overlay); // The root page of your application Content = grid; }
public ComingIn(string Lat, string Long, string DeviceId, string LocAddress, string distanceFromOrigin) : base() { this.Latitude = Lat; this.Longitude = Long; this.UniqueDeviceID = DeviceId; this.LocationAddress = LocAddress; this.distanceFromOrigin = distanceFromOrigin; BackgroundColor = ColorResources.PageBackgroundColor; zxing = new ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand }; zxing.OnScanResult += (result) => { zxing.IsAnalyzing = false;// Stop analysis until we navigate away so we don't keep reading barcodes Device.BeginInvokeOnMainThread(async() => { if (result.Text == "nWorks Technologies (India) Pvt. Ltd., 206 Garden Plaza, Rahatani, Pune, Maharashtra, 411 017, INDIA") { comingIn_goingOut obj = new comingIn_goingOut(); try { //get geolocation obj.empId = ColorResources.LIVE_USER_ID; obj.qrValue = result.Text; obj.DeviceID = this.UniqueDeviceID; obj.latitude = this.Latitude; obj.longitude = this.Longitude; obj.Location = this.LocationAddress; obj.distanceFromOrigin = this.distanceFromOrigin; await this.Navigation.PopAsync(); zxing.IsScanning = false; var json = JsonConvert.SerializeObject(obj); var content = new StringContent(json, Encoding.UTF8, "application/json"); HttpClient Client = new HttpClient(); HttpResponseMessage response = null; response = await Client.PostAsync(ColorResources.baseUrl + "comingIn", content); if (response.IsSuccessStatusCode) { var responseContent = await response.Content.ReadAsStringAsync(); var res = JsonConvert.DeserializeObject <string>(responseContent); await DisplayAlert(" nWorksLeaveApp", res.ToString(), "OK"); } } catch (Exception exc) { // await DisplayAlert(" nWorksLeaveApp",exc.ToString(),"OK"); Debug.WriteLine(exc.ToString()); } } else { await DisplayAlert(" nWorksLeaveApp", "Invalid QR Code!", "OK"); } }); }; overlay = new ZXingDefaultOverlay { TopText = "Hold your phone up to the barcode", BottomText = "Scanning will happen automatically", ShowFlashButton = zxing.HasTorch, }; overlay.FlashButtonClicked += (sender, e) => { zxing.IsTorchOn = !zxing.IsTorchOn; }; var grid = new Grid { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, HeightRequest = 500, }; grid.Children.Add(zxing); grid.Children.Add(overlay); Content = new StackLayout { Padding = new Thickness(0, 15, 0, 10), VerticalOptions = LayoutOptions.Center, Children = { new Label { Text = "I am coming...", TextColor = Color.Red, FontSize = 25, VerticalOptions = LayoutOptions.StartAndExpand, HorizontalOptions = LayoutOptions.Center, }, grid } }; }
public CustomScanPage( // INavigationService navigationService ) : base() { _clip = Xamarin.Forms.DependencyService.Get <IClipBoardService>();; webBrowser = Xamarin.Forms.DependencyService.Get <IWebBrowserService>(); InitializeComponent(); SizeChanged += (t, w) => { var MIN_WIDTH = 160; var MIN_HEIGHT = 40; var _width = Width * 0.5; var _height = Height * 0.2; if (zxing != null) { zxing.WidthRequest = _width < MIN_WIDTH ? MIN_WIDTH : _width; zxing.HeightRequest = _height < MIN_HEIGHT ? MIN_HEIGHT : _height; return; } zxing = new ZXingScannerView { HorizontalOptions = LayoutOptions.CenterAndExpand, VerticalOptions = LayoutOptions.CenterAndExpand, WidthRequest = _width, HeightRequest = _height }; zxing.OnScanResult += (result) => { // 前回と同じ読み込みなら何もしない if (result.Text == prevSearchText) { return; } prevSearchText = result.Text; Device.BeginInvokeOnMainThread(() => { // Stop analysis until we navigate away so we don't keep reading barcodes zxing.IsAnalyzing = false; // Show an alert // await DisplayAlert("クリップボードにコピーしました", result.Text, "OK"); _clip.SetTextToClipBoard(result.Text); // ラベルのテキストを更新 resultLabl.Text = "クリップボードに【" + result.Text + "】をコピーしました。"; // await navigationService.GoBackAsync(); OpenBrawser(result.Text); }); }; var grid = new Grid { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, }; grid.Children.Add(zxing); // grid.Children.Add(overlay); // The root page of your application MainBoard.Children.Add(grid); MainBoard.Children.Add(resultLabl); }; }
public SaoPage() : base() { InitializeComponent(); zxing = new ZXingScannerView { Options = new ZXing.Mobile.MobileBarcodeScanningOptions() { TryHarder = true }, HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand }; zxing.OnScanResult += (result) => Device.BeginInvokeOnMainThread(async() => { zxing.IsAnalyzing = false; zxing.IsScanning = false; try { zxing.IsTorchOn = false; } catch (Exception) { } //await DisplayAlert("Scanned Barcode", result.Text, "OK"); //连接地址则跳转 if (ToolsClass.IsUrl(result.Text)) { var msg = new NavigationMessage() { Paremeter = result.Text }; MessagingCenter.Send(msg, "AutoScanCode"); Navigation.RemovePage(this); //await Navigation.PushAsync(new WebViewPage(result.Text)); return; } else { await DisplayAlert("查询结果", "" + result.Text + "", "确定"); var msg = new NavigationMessage() { Paremeter = result.Text }; MessagingCenter.Send(msg, "AutoScanCode"); } await Navigation.PopAsync(); }); overlay = new MyZXingOverlay { TopText = "请对准条码/二维码", BottomText = "阴暗天气建议打开闪光灯", ShowFlashButton = true, ButtonText = "开灯" }; overlay.FlashButtonClicked += (sender, e) => { try { sender.BackgroundColor = Color.FromHex("7fadf7"); if (!zxing.IsTorchOn) { sender.Text = "关灯"; CrossLampState = true; zxing.IsTorchOn = true; } else { sender.Text = "开灯"; zxing.IsTorchOn = false; } } catch (Exception) { } }; var grid = new Grid { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, }; grid.Children.Add(zxing); grid.Children.Add(overlay); Content = grid; }
/// <summary> /// Views the did load. /// Contains code to create view on controller /// </summary> public override void ViewDidLoad() { // Loading view design loadingBg = new UIView(this.View.Frame) { BackgroundColor = UIColor.Black, AutoresizingMask = UIViewAutoresizing.FlexibleDimensions }; // Activity indicator view design loadingView = new UIActivityIndicatorView(UIActivityIndicatorViewStyle.WhiteLarge) { AutoresizingMask = UIViewAutoresizing.FlexibleMargins }; loadingView.Frame = new CGRect((this.View.Frame.Width - loadingView.Frame.Width) / 2, (this.View.Frame.Height - loadingView.Frame.Height) / 2, loadingView.Frame.Width, loadingView.Frame.Height); loadingBg.AddSubview(loadingView); View.AddSubview(loadingBg); loadingView.StartAnimating(); // Parent view design which contains 2 subviews; // 1- Contact and button view // 2- Scanner view parentView = new UIView(new CGRect(0, 0, View.Frame.Width, View.Frame.Height)); // Contact view design contactView = new UIView(new CGRect(0, 0, View.Frame.Width, View.Frame.Height / 4)) { BackgroundColor = UIColor.White }; txtContactNumber = new UITextField { Frame = new CGRect(contactView.Frame.X + 20, (contactView.Frame.Height / 2) - 20, (contactView.Frame.Width - contactView.Frame.Width / 3), 40), BackgroundColor = UIColor.White, AutocorrectionType = UITextAutocorrectionType.No, SpellCheckingType = UITextSpellCheckingType.No, Placeholder = "Contact number", BorderStyle = UITextBorderStyle.RoundedRect }; txtContactNumber.Layer.BorderWidth = 0.5f; txtContactNumber.Layer.CornerRadius = 5; btnDone = new UIButton { Frame = new CGRect(txtContactNumber.Frame.Width + 40, (contactView.Frame.Height / 2) - 20, 70, 40), BackgroundColor = UIColor.Blue }; btnDone.SetTitle("Done", UIControlState.Normal); btnDone.Layer.BorderWidth = 0.0f; btnDone.Layer.CornerRadius = 5; btnDone.TouchUpInside += BtnDone_TouchUpInside; contactView.AddSubview(txtContactNumber); contactView.AddSubview(btnDone); // Scanner view design scannerView = new ZXingScannerView(new CGRect(0, contactView.Frame.Height, View.Frame.Width, View.Frame.Height - contactView.Frame.Height)) { AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight, UseCustomOverlayView = this.Scanner.UseCustomOverlay, CustomOverlayView = this.Scanner.CustomOverlay, TopText = this.Scanner.TopText, BottomText = this.Scanner.BottomText, CancelButtonText = this.Scanner.CancelButtonText, FlashButtonText = this.Scanner.FlashButtonText }; scannerView.OnCancelButtonPressed += Cancel; parentView.AddSubview(contactView); parentView.AddSubview(scannerView); //this.View.AddSubview(scannerView); this.View.InsertSubviewBelow(parentView, loadingView); this.View.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight; }
public override void ViewDidLoad() { this.View.Frame = UIScreen.MainScreen.Bounds; this.View.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight; _scannerView = new ZXingScannerView(View.Bounds); _scannerView.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight; _scannerView.UseCustomOverlayView = false; View.AddSubview(_scannerView); View.AutoresizingMask = UIViewAutoresizing.FlexibleWidth; }
public BarcodeScanProvider(INavigationService navigationService, ZXingScannerView scanPage) { this.navigationService = navigationService; this.scanPage = scanPage; InitScanningPage(); }
public PartialScreenScanning() { // Get a reference to the Scanner so that we can manually assign events from the ViewModel InitializeComponent(); ZXigQRScanner = _scanView; }
// ObservableCollection<RosterMember> members; public ScannerPage() { InitializeComponent(); scannerView = new ZXingScannerView { HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center }; // var mockStore = new MockDataStore(); RosterMembersViewModel memberView = new RosterMembersViewModel(); // members = new ObservableCollection<RosterMember>(); var stackLayout = new StackLayout { BackgroundColor = Color.LightGray, HeightRequest = 200 }; scannerView.OnScanResult += (result) => Device.BeginInvokeOnMainThread(async() => { scannerView.IsAnalyzing = false; // TODO invoke imis web service; send barcoded data and memeber data var member = await memberView.DataStore.GetItemAsync(result.Text); if (stackLayout.Children.Count > 0) { stackLayout.Children.RemoveAt(0); } if (member != null) { var memberStackLayout = new StackLayout(); var memberStatusLabel = new Label(); var memberNameLabel = new Label(); var memberIdLabel = new Label(); var memberAlertGrid = new Grid(); memberAlertGrid.RowSpacing = 1; memberAlertGrid.ColumnSpacing = 1; memberAlertGrid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); memberAlertGrid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); member.Status = SwitchStatus(member.Status); await memberView.DataStore.UpdateItemAsync(member); // ReSharper disable once UseStringInterpolation memberStatusLabel.Text = string.Format(@"{0} has been {1} at {2}", member.FullName, GetStatusText(member.Status), DateTime.Now.ToShortTimeString()); memberStatusLabel.BackgroundColor = Color.FromHex("#dff0d8"); memberNameLabel.Text = member.FullName; memberNameLabel.VerticalOptions = LayoutOptions.Center; memberIdLabel.Text = member.Id; memberIdLabel.VerticalOptions = LayoutOptions.Center; foreach (var memberAlert in member.MemberAlerts) { memberAlertGrid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }); var alertLabel = new Label(); var alertTypeLabel = new Label(); alertLabel.Text = memberAlert.Description; alertTypeLabel.Text = memberAlert.Type.ToString(); memberAlertGrid.Children.Add(alertTypeLabel, 0, member.MemberAlerts.IndexOf(memberAlert)); memberAlertGrid.Children.Add(alertLabel, 1, member.MemberAlerts.IndexOf(memberAlert)); } var button = new Button(); button.Text = "Undo"; button.BackgroundColor = Color.FromHex("#e98300"); button.TextColor = Color.White; button.Clicked += async delegate { if (stackLayout.Children.Count > 0) { stackLayout.Children.RemoveAt(0); } member.Status = SwitchStatus(member.Status); await memberView.DataStore.UpdateItemAsync(member); // ReSharper disable once UseStringInterpolation memberStatusLabel.Text = string.Format(@"{0} has been {1} at {2}", member.FullName, GetStatusText(member.Status), DateTime.Now.ToShortTimeString()); stackLayout.Children.Add(memberStackLayout); }; memberStackLayout.Children.Add(memberStatusLabel); // memberStackLayout.Children.Add(memberNameLabel); // memberStackLayout.Children.Add(memberIdLabel); if (member.MemberAlerts.Count > 0) { memberStackLayout.Children.Add(memberAlertGrid); } memberStackLayout.Children.Add(button); stackLayout.Children.Add(memberStackLayout); } else { var memberStackLayout = new StackLayout(); var memberStatusLabel = new Label(); var memberNameField = new Entry(); // ReSharper disable once UseStringInterpolation memberStatusLabel.Text = string.Format(@"Youth member not found {0}", result.Text); memberStatusLabel.BackgroundColor = Color.FromHex("#FEEFB3"); var button = new Button(); button.Text = "Add"; button.BackgroundColor = Color.FromHex("#e98300"); button.TextColor = Color.White; button.Clicked += async delegate { if (button.Text.Equals("Add")) { if (stackLayout.Children.Count > 0) { stackLayout.Children.RemoveAt(0); } var newMember = new RosterMember(); newMember.Id = result.Text; newMember.FullName = string.IsNullOrEmpty(memberNameField.Text) ? memberNameField.Text : "new member"; newMember.Status = CheckInStatus.CheckedIn; await memberView.DataStore.AddItemAsync(newMember); if (stackLayout.Children.Count > 0) { stackLayout.Children.RemoveAt(0); } // ReSharper disable once UseStringInterpolation memberStatusLabel.Text = string.Format(@"{0} has been added and {1} at {2}", result.Text, newMember.Status, DateTime.Now.ToShortTimeString()); button.Text = "Undo"; } else if (button.Text.Equals("Undo")) { member = await memberView.DataStore.GetItemAsync(result.Text); if (member != null) { member.Status = SwitchStatus(member.Status); await memberView.DataStore.UpdateItemAsync(member); // ReSharper disable once UseStringInterpolation memberStatusLabel.Text = string.Format(@"{0} has been {1} at {2}", member.FullName, GetStatusText(member.Status), DateTime.Now.ToShortTimeString()); } } memberStackLayout = new StackLayout(); memberStackLayout.Children.Add(memberStatusLabel); memberStackLayout.Children.Add(button); stackLayout.Children.Add(memberStackLayout); }; memberStackLayout.Children.Add(memberStatusLabel); memberStackLayout.Children.Add(memberNameField); memberStackLayout.Children.Add(button); stackLayout.Children.Add(memberStackLayout); } await Task.Delay(3000); scannerView.IsAnalyzing = true; }); scannerOverlay = new ZXingDefaultOverlay { TopText = "Hold your phone over youth member code to check in", BottomText = "Scanning will happen automatically", ShowFlashButton = scannerView.HasTorch, }; scannerOverlay.Children.AddVertical(stackLayout); scannerOverlay.FlashButtonClicked += (sender, e) => { scannerView.IsTorchOn = !scannerView.IsTorchOn; }; var grid = new Grid { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, }; grid.Children.Add(scannerView); grid.Children.Add(scannerOverlay); // The root page of your application Content = grid; }
private async void LoadLectorQR() { if (isLoadLectorQR) { return; } isLoadLectorQR = true; await MainViewModel.GetInstace().CollectViewModel.ShowDialog(); bool statePermission = await Permissions.GetPermissions(Permission.Camera); if (statePermission) { try { await Task.Delay(1000); scanner = new ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, Options = new MobileBarcodeScanningOptions() { PossibleFormats = new List <ZXing.BarcodeFormat> { ZXing.BarcodeFormat.QR_CODE, }, DelayBetweenContinuousScans = 2000 }, }; scanner.OnScanResult += (result) => { scanner.IsAnalyzing = false; if (scanner.IsScanning) { scanner.AutoFocus(); } Device.BeginInvokeOnMainThread(async() => { await MainViewModel.GetInstace().CollectViewModel.ProcessTransaction(result.Text); scanner.IsAnalyzing = true; }); }; MainPageContainer.Children.Add(scanner); scanner.IsEnabled = true; scanner.IsAnalyzing = true; scanner.IsScanning = true; } catch (Exception ex) { ServiceBackgroundWorker.GetInstance().SendExceptionWorker(ex.ToString()); } } isFirstTimeOnLoad = false; await MainViewModel.GetInstace().CollectViewModel.CloseDialog(); isLoadLectorQR = false; }
public TestScan() : base() { InitializeComponent(); //var secureStorage = DependencyService.Get<IPlugInProvider>().SecureStorage; activitySpinner = new ActivityIndicator(); scanner = new ZXingScannerView(); overlay = new ZXingDefaultOverlay(); scanner.IsVisible = false; miaoCodeEntry = new Entry(); miaoCodeEntry.VerticalOptions = LayoutOptions.Center; miaoCodeEntry.HorizontalOptions = LayoutOptions.FillAndExpand; miaoCodeEntry.HorizontalTextAlignment = TextAlignment.Center; miaoCodeEntry.IsEnabled = false; //miaoCodeEntry.MaxLength = 13; miaoCodeEntry.Placeholder = "Scan or type in MIAO ID"; miaoCodeEntry.Keyboard = Keyboard.Telephone; miaoCodeEntry.FontSize = Device.GetNamedSize(NamedSize.Large, typeof(Entry)); mainGrid.Children.Add(miaoCodeEntry, 0, 0); mobileInfo = new Label { Text = "No devices", HorizontalTextAlignment = TextAlignment.Center, VerticalTextAlignment = TextAlignment.Center, VerticalOptions = LayoutOptions.CenterAndExpand, FontSize = Device.GetNamedSize(NamedSize.Large, typeof(Entry)) }; testView = new ListView(); //mainGrid.Children.Add(testView, 0, 2); //mainGrid.Children.Add(mobileInfo, 0, 2); if (!string.IsNullOrEmpty(miaoCodeEntry.Text)) { UIDeviceSize = miaoCodeEntry.Text.Length; } else { UIDeviceSize = 0; } miaoCodeEntry.TextChanged += (s, e) => { if (miaoCodeEntry.Text.Length < UIDeviceSize) { System.Diagnostics.Debug.WriteLine("Reel " + miaoCodeEntry.Text.Length + " Other " + UIDeviceSize); } else { if (miaoCodeEntry.Text.Length == 3) { miaoCodeEntry.Text += "-"; } if (miaoCodeEntry.Text.Length == 6) { miaoCodeEntry.Text += "-"; } if (miaoCodeEntry.Text.Length == 10) { miaoCodeEntry.Text += "-"; } } UIDeviceSize = miaoCodeEntry.Text.Length; }; }
public PageScan1() : base() { zxing = new ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, }; zxing.OnScanResult += (result) => Device.BeginInvokeOnMainThread(async() => { // Stop analysis until we navigate away so we don't keep reading barcodes zxing.IsAnalyzing = false; zxing.IsScanning = false; // Show an alert await DisplayAlert("Scanned Barcode", result.Text, "OK"); Application.Current.MainPage = new NavigationPage(new PageX()); if (await DisplayAlert("", "Do you want to open browser?", "Yes", "No")) { // Application.Current.MainPage = new NavigationPage(new PageX()); //Device.OpenUri(new Uri("https://www.google.com/?gfe_rd=cr&ei=ccRwWIS7D8ao8weY9b_ADA#q=" + result.Text)); Device.OpenUri(new Uri("https://www.google.co.in/search?q=" + result.Text)); } // /* rdrBtn.Clicked += (sender, e) => //Product Details Button * * { * * Device.OpenUri(new Uri("https://www.google.co.in/search?q=" + result.Text)); * * * };*/ // Navigate away //await Navigation.PopAsync(); }); overlay = new ZXingDefaultOverlay { TopText = "Hold your phone up to the barcode/QRcode", BottomText = "Scanning will happen automatically", //ShowFlashButton = zxing.HasTorch, }; /* var rdrBtn = new Button * { * Text = "more", * HorizontalOptions = LayoutOptions.End, * VerticalOptions = LayoutOptions.End * }; * rdrBtn.Clicked += (sender, e) => //Product Details Button * * { * * Device.OpenUri(new Uri(lblurl)); * * * }; */ var back = new Button { Text = "Cancel", //BorderWidth = 1, HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.End }; /*back.Clicked += (sender, e) => { * //Navigation.PushModalAsync(new ()); * Application.Current.MainPage = new NavigationPage(new PageX()); * // * //Navigation.PopModalAsync(); * * };*/ var rdrBtn = new Button { Text = "more", HorizontalOptions = LayoutOptions.End, VerticalOptions = LayoutOptions.End }; var flash = new Button { Image = "ic_flash_on_black_24dp.png", HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.End }; flash.Clicked += (sender, e) => { zxing.IsTorchOn = !zxing.IsTorchOn; }; var grid = new Grid { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, }; grid.Children.Add(zxing); grid.Children.Add(overlay); //grid.Children.Add(back); grid.Children.Add(rdrBtn); grid.Children.Add(flash); // The root page of your application Content = grid; }
private async void Button_Clicked(object sender, EventArgs e) { opts = new ZXing.Mobile.MobileBarcodeScanningOptions() { AutoRotate = false, PossibleFormats = new List <ZXing.BarcodeFormat>() { ZXing.BarcodeFormat.CODE_128, ZXing.BarcodeFormat.CODABAR, ZXing.BarcodeFormat.CODE_39, } }; opts.TryHarder = true; zxing = new ZXingScannerView { IsScanning = false, IsTorchOn = false, IsAnalyzing = false, AutomationId = "zxingDefaultOverlay",//zxingScannerView Opacity = 22, Options = opts }; var torch = new Switch { }; torch.Toggled += delegate { scanPage.ToggleTorch(); }; var grid = new Grid { VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.Center, }; var Overlay = new ZXingDefaultOverlay { TopText = "Włącz latarkę", BottomText = "Skanowanie rozpocznie się automatycznie", ShowFlashButton = true, AutomationId = "zxingDefaultOverlay", }; var customOverlay = new StackLayout { HorizontalOptions = LayoutOptions.EndAndExpand, VerticalOptions = LayoutOptions.EndAndExpand }; grid.Children.Add(Overlay); Overlay.Children.Add(torch); Overlay.BindingContext = Overlay; scanPage = new ZXingScannerPage(opts, customOverlay: Overlay) { DefaultOverlayTopText = "Zeskanuj kod ", //DefaultOverlayBottomText = " Skanuj kod "; DefaultOverlayShowFlashButton = true }; scanPage.OnScanResult += (result) => { scanPage.IsScanning = false; scanPage.AutoFocus(); Device.BeginInvokeOnMainThread(() => { Device.StartTimer(new TimeSpan(0, 0, 0, 2), () => { if (scanPage.IsScanning) { scanPage.AutoFocus(); } return(true); }); Navigation.PopModalAsync(); entry_MM.Text = result.Text; viewModel.ExecInsertToBase(result.Text); }); }; await Navigation.PushModalAsync(scanPage); }
public ScanPage() { InitializeComponent(); _zxing = new ZXingScannerView(); }
public LoyaltyScannerPage() : base() { zxing = new ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, AutomationId = "zxingScannerView", }; zxing.OnScanResult += (result) => { // Stop analysis until we navigate away so we don't keep reading barcodes zxing.IsAnalyzing = false; Guid barcodeGuid; if (Guid.TryParse(result.Text, out barcodeGuid)) { vm.RecordScanAsync(barcodeGuid); Device.BeginInvokeOnMainThread(async() => { // Show an alert //await DisplayAlert("Scanned Barcode", result.Text, "OK"); // Navigate away //await Navigation.PopAsync(); var navServ = ((QuikRide.App)Xamarin.Forms.Application.Current).Kernel.GetService(typeof(INavigationService)) as INavigationService; navServ.NavigateTo <LoyaltyBonusViewModel>(); }); /*.BeginInvokeOnMainThread(async () => * { * await Application.Current.MainPage.DisplayAlert("Thanks!", "You're the best!", "OK"); * });*/ } else { Device.BeginInvokeOnMainThread(async() => { await Application.Current.MainPage.DisplayAlert("Oh oh!", "Try a loyalty barcode next time!", "OK"); }); } }; overlay = new ZXingDefaultOverlay { TopText = "Hold your phone up to the barcode", BottomText = "Scanning will happen automatically", ShowFlashButton = zxing.HasTorch, AutomationId = "zxingDefaultOverlay", }; overlay.FlashButtonClicked += (sender, e) => { zxing.IsTorchOn = !zxing.IsTorchOn; }; var grid = new Grid { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, }; grid.Children.Add(zxing); grid.Children.Add(overlay); // The root page of your application Content = grid; }
public CustomScanPage() : base() { result = null; zxing = new ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand }; SetScanOptions(); zxing.OnScanResult += Zxing_OnScanResult; var inText = new Label { HeightRequest = 32, WidthRequest = 120, BackgroundColor = Color.White, Text = "", FontSize = 28, FontAttributes = FontAttributes.Bold, VerticalTextAlignment = TextAlignment.Center, HorizontalTextAlignment = TextAlignment.Center }; string[] texts = new string[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "⬅", "0", "▶" }; var buttons = new Button[texts.Length]; for (var j = 0; j < texts.Length; j++) { buttons[j] = new Button { Text = texts[j], WidthRequest = 65, HeightRequest = 65, CornerRadius = 6, FontSize = 28, FontAttributes = FontAttributes.Bold }; buttons[j].Clicked += (s, e) => { if (int.TryParse((s as Button).Text, out int num)) { inText.Text += (s as Button).Text; } else if ((s as Button).Text == "⬅") { if (inText.Text.Length > 0) { inText.Text = inText.Text.Substring(0, inText.Text.Length - 1); } } else { zxing.RaiseScanResult(new ZXing.Result(inText.Text, Encoding.ASCII.GetBytes(inText.Text), null, ZXing.BarcodeFormat.QR_CODE)); } }; } var customKeyboard = new Grid { RowDefinitions = new RowDefinitionCollection { new RowDefinition { Height = 38 }, new RowDefinition { Height = 72 }, new RowDefinition { Height = 72 }, new RowDefinition { Height = 72 }, new RowDefinition { Height = 72 } }, ColumnDefinitions = new ColumnDefinitionCollection { new ColumnDefinition { Width = 72 }, new ColumnDefinition { Width = 72 }, new ColumnDefinition { Width = 72 } }, VerticalOptions = LayoutOptions.End, HorizontalOptions = LayoutOptions.Center, IsVisible = false, BackgroundColor = Color.FromRgba(1.0, 1.0, 1.0, 0.7), Padding = new Thickness(10, 5, 10, 2) }; customKeyboard.Children.Add(inText, 0, 0); for (var j = 0; j < texts.Length; j++) { customKeyboard.Children.Add(buttons[j], j % 3, 1 + (int)(j / 3)); } Grid.SetColumnSpan(inText, 3); var torch = new ImageButton { Source = "torch.png", VerticalOptions = LayoutOptions.End, HorizontalOptions = LayoutOptions.End, HeightRequest = 96, WidthRequest = 96 }; torch.Clicked += delegate { zxing.ToggleTorch(); }; var keyboard = new ImageButton { Source = "numeric.png", VerticalOptions = LayoutOptions.End, HorizontalOptions = LayoutOptions.Start, HeightRequest = 96, WidthRequest = 96 }; keyboard.Clicked += delegate { if (customKeyboard.IsVisible) { customKeyboard.IsVisible = false; } else { customKeyboard.IsVisible = true; } }; var abort = new Button { Text = Language.GetText("Cancel"), HorizontalOptions = LayoutOptions.FillAndExpand, TextColor = Color.White, HeightRequest = 300 }; abort.Clicked += delegate { zxing.RaiseScanResult(null); }; var customOverlayTop = new StackLayout { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, BackgroundColor = Color.Black, Opacity = 0.7, Children = { new Label { HeightRequest = 20, }, new Label { Text = Language.GetText("AppTitle"), HorizontalTextAlignment = TextAlignment.Center, HorizontalOptions = LayoutOptions.CenterAndExpand, TextColor = Color.White }, new Label { Text = "Scan QR code...", HorizontalTextAlignment = TextAlignment.Center, HorizontalOptions = LayoutOptions.CenterAndExpand, TextColor = Color.White } } }; var customOverlayCenter = new Grid { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, Opacity = 0.7, Children = { new Image { VerticalOptions = LayoutOptions.CenterAndExpand, HorizontalOptions = LayoutOptions.Center, Source = "scanl1.png", Aspect = Aspect.AspectFit }, new Image { VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.CenterAndExpand, Source = "scanl2.png", Aspect = Aspect.AspectFill }, new Xamarin.Forms.Shapes.Rectangle { VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.CenterAndExpand, WidthRequest = 170, HeightRequest = 170, Stroke = Brush.Black, StrokeThickness = 1, RadiusX = 3, RadiusY = 3 }, torch, keyboard, customKeyboard } }; var customOverlayBottom = new StackLayout { Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, BackgroundColor = Color.Black, Opacity = 0.7, Padding = new Thickness(0, 10, 0, 10), }; customOverlayBottom.Children.Add(abort); //if(zxing.HasTorch) customOverlayBottom.Children.Add(torch); BUG on library, this returns always FALSE //customOverlayBottom.Children.Add(torch); var customOverlay = new Grid { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, RowDefinitions = new RowDefinitionCollection { new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }, new RowDefinition { Height = new GridLength(2, GridUnitType.Star) }, new RowDefinition { Height = new GridLength(1, GridUnitType.Star) } }, Children = { customOverlayTop, customOverlayCenter, customOverlayBottom } }; Grid.SetRow(customOverlayTop, 0); Grid.SetRow(customOverlayCenter, 1); Grid.SetRow(customOverlayBottom, 2); var grid = new Grid { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, }; grid.Children.Add(zxing); grid.Children.Add(customOverlay); // The root page of your application Content = grid; }
public BarcodeScanner() { InitializeComponent(); GlobalVariables._codigoBarras = null; var options = new MobileBarcodeScanningOptions { AutoRotate = false, UseFrontCameraIfAvailable = false, TryHarder = true, //PossibleFormats = new List<ZXing.BarcodeFormat> //{ // ZXing.BarcodeFormat.EAN_8, ZXing.BarcodeFormat.EAN_13, // ZXing.BarcodeFormat.CODE_39,ZXing.BarcodeFormat.All_1D //} }; zxing = new ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, Options = options }; zxing.OnScanResult += (result) => Device.BeginInvokeOnMainThread(async() => { // Stop analysis until we navigate away so we don't keep reading barcodes zxing.IsAnalyzing = false; BarcodeReaded?.Invoke(this, result.Text); // Navigate away await Navigation.PopAsync(); // Código de barras leído. Envía Menssage a MainPage MessagingCenter.Send <Views.BarcodeScanner, string>(this, "BarcodeRead", result.Text); //if (result.Text != null) //{ // GlobalVariables._codigoBarras = result.Text; // // await Navigation.PushAsync(new Views.ArticusPage(result.Text, null)); //} }); overlay = new ZXingDefaultOverlay { TopText = "Sostenga su teléfono sobre el código de barras", BottomText = "El código se escaneará automaticamente", ShowFlashButton = true, //ShowFlashButton = zxing.HasTorch, }; overlay.FlashButtonClicked += (sender, e) => { zxing.IsTorchOn = !zxing.IsTorchOn; }; var abort = new Button { Text = "Cancelar", VerticalOptions = LayoutOptions.End, TextColor = Color.FromHex("#FFF"), BackgroundColor = Color.FromHex("#4F51FF") }; switch (Device.RuntimePlatform) { case Device.iOS: abort.HeightRequest = 40; break; case Device.Android: abort.HeightRequest = 50; break; } abort.Clicked += (object s, EventArgs e) => { zxing.IsScanning = false; Device.BeginInvokeOnMainThread(async() => { await Navigation.PopAsync(); }); }; var grid = new Grid { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, }; grid.Children.Add(zxing); grid.Children.Add(overlay); grid.Children.Add(abort); // The root page of your application Content = grid; }
private void InitializeQr() { _scannerView = new ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, AutomationId = "zxingScannerView", }; _scannerView.AutoFocus(); _scannerView.OnScanResult += (result) => Device.BeginInvokeOnMainThread(async() => { await ProcessQr(result.Text); }); var overlay = new Grid { AutomationId = "zxingDefaultOverlay" }; overlay.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }); //0 overlay.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }); //1 overlay.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }); //2 overlay.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }); //3 overlay.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }); //4 overlay.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); //0 overlay.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); //1 overlay.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); //2 overlay.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); //3 overlay.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); //4 Image imageButton = new Image { Source = "backscanner.png", Aspect = Aspect.AspectFit, HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, BackgroundColor = Color.Transparent, }; var back = new Button { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, BackgroundColor = Color.Transparent, }; back.Clicked += OnBackButtonClicked; overlay.Children.Add(imageButton, 2, 4); overlay.Children.Add(back, 2, 4); Image scannerImage = new Image { Source = "scannerhud.png", HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, Aspect = Aspect.Fill, }; overlay.Children.Add(scannerImage, 0, 0); Grid.SetColumnSpan(scannerImage, 5); Grid.SetRowSpan(scannerImage, 4); var grid = new Grid { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, }; grid.Children.Add(_scannerView); grid.Children.Add(overlay); Content = grid; }
public MyResultHandler(CodBarrasV2 codBarrasV2, ZXingScannerView scannerView) { this.scannerView = scannerView; this.codBarrasV2 = codBarrasV2; }
public TelaCodigoBarras(string op) { /*MobileBarcodeScanningOptions optionCode = this.optionCode;*/ InitializeComponent(); // Configuração da Leitura this.optionsEan8 = new MobileBarcodeScanningOptions { AutoRotate = false, UseFrontCameraIfAvailable = false, TryHarder = true, // Todos os formatos que códigos que serão aceitos PossibleFormats = new List <ZXing.BarcodeFormat> { ZXing.BarcodeFormat.EAN_8 } }; this.optionsEan13 = new MobileBarcodeScanningOptions { AutoRotate = false, UseFrontCameraIfAvailable = false, TryHarder = true, // Todos os formatos que códigos que serão aceitos PossibleFormats = new List <ZXing.BarcodeFormat> { ZXing.BarcodeFormat.EAN_13 } }; this.optionsEan14 = new MobileBarcodeScanningOptions { AutoRotate = false, UseFrontCameraIfAvailable = false, TryHarder = true, // Todos os formatos que códigos que serão aceitos PossibleFormats = new List <ZXing.BarcodeFormat> { ZXing.BarcodeFormat.EAN_8, ZXing.BarcodeFormat.CODE_128 } }; this.optionsQrCode = new MobileBarcodeScanningOptions { AutoRotate = false, UseFrontCameraIfAvailable = false, TryHarder = true, // Todos os formatos que códigos que serão aceitos PossibleFormats = new List <ZXing.BarcodeFormat> { ZXing.BarcodeFormat.QR_CODE } }; switch (op) { case "EAN_8": barCodeButton = op; zXing = new ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, Options = optionsEan8 }; break; case "EAN_13": barCodeButton = op; zXing = new ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, Options = optionsEan13 }; break; case "EAN_14": barCodeButton = op; zXing = new ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, Options = optionsEan14 }; break; case "QR_CODE": barCodeButton = op; zXing = new ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, Options = optionsQrCode }; break; } zXing.OnScanResult += (result) => Device.BeginInvokeOnMainThread(async() => { // Finaliza a leitura zXing.IsAnalyzing = false; barCodeString = result.Text; // Pega as informações do código lido BarcodeRead?.Invoke(this, barCodeButton + ": " + barCodeString); await Navigation.PopModalAsync(); }); overlay = new ZXingDefaultOverlay { TopText = "Aproxime do código para leitura", BottomText = "O código será lido automaticamente", ShowFlashButton = zXing.HasTorch }; var grid = new Grid { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand }; grid.Children.Add(zXing); grid.Children.Add(overlay); Content = grid; }
public Page4() : base() { zxing = new ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, }; zxing.OnScanResult += (result) => Device.BeginInvokeOnMainThread(async() => { // Stop analysis until we navigate away so we don't keep reading barcodes zxing.IsAnalyzing = false; // Show an alert await DisplayAlert("Scanned Barcode", result.Text, "OK"); await DisplayAlert("open url link?", result.ToString(), "Yes", cancel: "No"); // Navigate away await Navigation.PopAsync(); }); overlay = new ZXingDefaultOverlay { TopText = "Hold your phone up to the barcode", BottomText = "Scanning will happen automatically", ShowFlashButton = zxing.HasTorch, }; var back = new Button { Text = "Cancel", //BorderWidth = 1, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.End }; back.Clicked += (sender, e) => { //Navigation.PushModalAsync(new ()); //Application.Current.MainPage = new NavigationPage(new MainPage()); // //Navigation.PushModalAsync(new MainPage()); }; overlay.FlashButtonClicked += (sender, e) => { zxing.IsTorchOn = !zxing.IsTorchOn; }; var grid = new Grid { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, }; grid.Children.Add(zxing); grid.Children.Add(overlay); grid.Children.Add(back); // The root page of your application Content = grid; }
public LeitorQRView() { InitializeComponent(); NavigationPage.SetHasNavigationBar(this, false); var options = new ZXing.Mobile.MobileBarcodeScanningOptions { AutoRotate = false, UseFrontCameraIfAvailable = false, TryHarder = true, PossibleFormats = new List <ZXing.BarcodeFormat> { ZXing.BarcodeFormat.QR_CODE//ZXing.BarcodeFormat.EAN_8, ZXing.BarcodeFormat.EAN_13 } }; zxing = new ZXing.Net.Mobile.Forms.ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, Options = options }; overlay = new ZXingDefaultOverlay { TopText = "Escolhe um QRCode para leitura", BottomText = "O Código sera lido automaticamente", ShowFlashButton = zxing.HasTorch, //Lanterna }; overlay.FlashButtonClicked += (sender, e) => { zxing.IsTorchOn = !zxing.IsTorchOn; }; var abort = new Button { Text = "Cancelar", VerticalOptions = LayoutOptions.End, TextColor = Color.FromHex("#FFF"), BackgroundColor = Color.FromHex("#4F51FF") }; switch (Device.RuntimePlatform) { case Device.iOS: abort.HeightRequest = 40; break; case Device.Android: abort.HeightRequest = 50; break; } abort.Clicked += (object s, EventArgs e) => { zxing.IsScanning = false; Device.BeginInvokeOnMainThread(async() => { await Navigation.PopModalAsync(); }); }; var grid = new Grid { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, }; grid.Children.Add(zxing); grid.Children.Add(overlay); grid.Children.Add(abort); Content = grid; //zxing = new ZXingScannerView //{ // HorizontalOptions = LayoutOptions.FillAndExpand, // VerticalOptions = LayoutOptions.FillAndExpand, //}; //zxing.OnScanResult += (result) => // Device.BeginInvokeOnMainThread(async () => { // // Stop analysis until we navigate away so we don't keep reading barcodes // zxing.IsAnalyzing = false; // // Show an alert // await DisplayAlert("Scanned Barcode", result.Text, "OK"); // // Navigate away // await Navigation.PopAsync(); // }); //EscanerQR.Children.Add(zxing); }
public SaoPage() : base() { //try //{ zxing = new ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand }; zxing.OnScanResult += (result) => Device.BeginInvokeOnMainThread(async() => { zxing.IsAnalyzing = false; zxing.IsScanning = false; try { zxing.IsTorchOn = false; } catch (Exception) { } if (ToolsClass.IsUrl(result.Text)) { //Navigation.RemovePage(this); await Navigation.PushAsync(new WebViewPage(result.Text)); return; } else { await DisplayAlert("二维码的值为:", result.Text, "确定"); } // Show an alert // Navigate away await Navigation.PopAsync(); }); overlay = new MyZXingOverlay { TopText = "请对准二维码", BottomText = "阴暗天气建议打开闪光灯", ShowFlashButton = true, ButtonText = "开灯" }; overlay.FlashButtonClicked += (sender, e) => { try { if (!zxing.IsTorchOn) { sender.Text = "关灯"; //CrossLampState = true; zxing.IsTorchOn = true; } else { sender.Text = "开灯"; zxing.IsTorchOn = false; } } catch (Exception) { } }; var grid = new Grid { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, }; grid.Children.Add(zxing); grid.Children.Add(overlay); Content = grid; }