Merhaba,
Geliştirdiğimiz Xamarin uygulamalarında Barcode, QR Code gibi kaynakları tüketmek isteyebiliriz. Bu gibi durumlar için Redth‘in geliştirdiği ücretsiz ve son derece iyi çalışan bir plugin‘i var.
ZXing.Net.Mobile for Forms
C# ve .Net kütüphaneleri kullanarak Xamarin.iOS, Xamarin.Android, Windows Phone Silverlight, Windows Universal ve Xamarin.Forms uygulamalarında kullanabileceğiniz Barcode kütüphanesidir.
Şimdiye kadar geliştirdiğim uygulamlarda ne zaman “Barcode veya QR” okutma ihtiyacım olsa bu plugin’i kullandım ve hiç sorun yaşamadım.
Yeni bir Xamarin.Forms (PCL) projesi açarak başlayalım..
Plugin’i kullanabilmeniz için güncel Xamarin.Forms stable update’i almanız gerekiyor. (2.3.2.127)
Xamarin.Forms update yaptıktan sonra Plugin’i projemize dahil edelim.
Bildiğiniz gibi her pluginin çalışması için platform özelinde render edilmesi gerekiyor.
Droid için : ZXing.Net.Mobile.Forms.Android.Platform.Init();
iOS için : ZXing.Net.Mobile.Forms.iOS.Platform.Init();
WinPhone için : ZXing.Net.Mobile.Forms.WindowsPhone.ZXingScannerViewRenderer.Init();
UWP için : ZXing.Net.Mobile.Forms.WindowsUniversal.ZXingScannerViewRenderer.Init();
Basit bir sayfa hazırlayarak hemen plugin’i tanımaya başlayalım.
Burada dikkat etmemiz gereken nokta AutomationId değeri. Set ettiğimiz string değere göre sayfanın çalışma yapısı oluşuyor.
- scanWithDefaultOverlay : Bunun yerine Scan yazsanız da değişiklik olmayacaktır. Default olarak çalışmaya devam edecektir.
- scanWithCustomOverlay : Custom ekran tasarımı yapmak isterseniz .
- scanContinuously : Tarama işlemini ekran geçişi olmadan ve durmadan yapmak isterseniz .
- scanWithCustomPage : Sizin hazırladığınız bir sayfa içerisinde kullanmak isterseniz.
- barcodeGenerator : Verdiğiniz string değere göre barcode üretmek isterseniz.
Plugin’i kullanabilmek için, plugin ile beraber gelen kendi sayfasını kullanıyoruz. (ZXingScannerPage)
Senaryomuz ekran üzerindeki button’a bastığımızda ZXingScannerPage’i açıp kamera yardımıyla Barcode veya QR kodumuzu okutmak.
Buradaki en önemli nokta plugin’in bize verdiği OnScanResult event’i. Bu event’i kullanarak scan işlemi bittiğinde ilgili veriyi kolay bir şekilde yakalayabiliyoruz.
Scan cevabını alırken Device.BeginInvokeOnMainThread içerisinde kullanmamızın amacı, olayı main thread içinde yakalamak istememiz.
Çok basit bir örnekle başladık fakat plugin’in yetenekleri çok fazla.
MobileBarcodeScanningOptions sınıfı içerisinde ihtiyacımızdan çok daha fazla ayar mevcut.
Burada bizim için en önemli özelliklerden biri PossibleFormats enum sabiti
Evet, istemediğiniz kadar seçenek mevcut! 🙂
Bunun yanında eğer scan yapacağınız sayfayı custom bir tasarımla güzelleştirmek isterseniz ZXingScannerView sınıfından yardım alabilirsiniz.
Flash Button, TopText, BottomText gibi özellikler verebiliyorsunuz.
Barcode üretme özelliği ise son derece kusursuz çalışıyor.
Yapmamız gereken tek olay plugin’in AutomationId üzerinden nasıl davranacağını söyleyip işlemi gerçekleştirmek.
github üzerinden kaynak kodlara ulaşabilirsiniz.
Görüşmek üzere
Yorum Gönder