QR Code Reader for android, ios?
Tom Glod
tom at makeshyft.com
Sat Feb 19 14:30:36 EST 2022
Thanks Klaus, I suppose the name threw me off.
"Nah I don't need to read barcodes" ...lol
Thank you.
Mike, thank you for confirming that it works fine on iOS....
Very thoughtful of you to include some code.
I will rewrite it for my customer, but this saved me lots of time thank you.
Mark this one [solved]. YES. MergeAV and Android barcode scanner., code
sample included.
On Sat, Feb 19, 2022 at 11:52 AM Mike Kerner via use-livecode <
use-livecode at lists.runrev.com> wrote:
> for ios use mergav. it works great
> on ios when prompted, the user has to permit both the camera and the
> microphone.
>
>
> here's some code to help get you going
> check for typos, i had to modify mine to make it more generic
>
> on scanCredentials
> global barcodeTarget
> if not(barcodePermissionsGranted()) then exit scanCredentials
> put the long name of me into barcodeTarget
> barcodeScannerStart "org.iso.QRCode" #when we get something back,
> scanReturned will be called
> unlock screen
> end scanCredentials
>
>
>
> function barcodePermissionsGranted
> global videoAccessGranted, audioAccessGranted
> put empty into videoAccessGranted
> put empty into audioAccessGranted
> #get permission for the camera and microphone
> if the environment is not "mobile" then return false
> mergavrequestmediaaccess "video"
> mergavrequestmediaaccess "audio"
> repeat until videoAccessGranted is not empty and audioAccessGranted is
> not empty # sit until we get the answers we seek
> wait 10 milliseconds with messages
> end repeat #until videoAccessGranted is not empty and audioAccessGranted
> is not empty
> return videoaccessGranted and audioaccessgranted
> end barcodePermissionsGranted
>
>
>
> on barcodeScannerStart symbology
> if the environment is not "mobile" then exit barcodeScannerStart
> mobileBusyIndicatorStart "square","Starting Scanner",70
> wait 10 milliseconds with messages
> put mergAVCamBarcodeTypes() into supportedSymbologies
> if symbology is empty or symbology is "All" then
> put supportedSymbologies into symbology #allow everything.
> else if symbology is not in supportedSymbologies then #if it's empty
> then assume "All"
> beep
> answer "The app wants to use a barcode symbology that isn't supported
> "&symbology&"."
> exit barcodeScannerStart
> end if #symbology is not in supportedSymbologies
> barcodeScanner symbology
> end barcodeScannerStart
>
>
>
> on mergAVMediaAccess pType, pGranted
> global videoAccessGranted, audioAccessGranted
> if not pGranted then
> if pType is "audio" then
> put "microphone" into device
> put "Microphone" into panel
> else #video
> put "camera" into device
> put "Camera" into panel
> end if #pType is "audio"
> mobilebusyindicatorstop
> put false into videoAccessGranted # nuke both because proceeding is
> out.
> put false into audioAccessGranted # nuke both because proceeding is
> out.
> answer "Please grant access to the"&&device&&"in the Settings app,
> under Privacy ->"&&panel
> exit to top
> else #granted - only set the one that was granted, don't do any funky
> resets, or anything.
> if pType is "audio" then
> put true into audioAccessGranted
> else #video
> put true into videoAccessGranted
> end if #pType is "audio"
> # added and removed...if audioAccessGranted and videoAccessGranted
> then barcodeScanner symbology
> end if #not pGranted
> end mergAVMediaAccess
>
>
>
> on barcodeScanner symbology
> global barcodeScannerIsLive
> mobileBusyIndicatorStart "square","Starting Scanner",70
> mergavcamcreate
> put the result into theResult
> if theResult is not empty then
> mobileBusyIndicatorStop
> answer "Scanner not created:"&&theResult
> exit barcodeScanner
> end if #the result is not empty
> try
> mergAVCamSet "rect",the rect of grc "cam"
> catch e
> mobileBusyIndicatorStop
> answer e
> exit barcodeScanner
> end try
> try
> mergAVCamSet "visible","true"
> catch e
> mobileBusyIndicatorStop
> answer e
> exit barcodeScanner
> end try
> try
> mergAVCamSet "quality","high"
> catch e
> mobileBusyIndicatorStop
> answer e
> exit barcodeScanner
> end try
> mobileBusyIndicatorStop
>
> put mergavcamget("max zoom") into theZoom
> try
> mergavcamset "zoom",theZoom
> catch e
> mobileBusyIndicatorStop
> answer e
> exit barcodeScanner
> end try
> mergAVCamStartBarcodeReader symbology
> put true into barcodeScannerIsLive
> end barcodeScanner
>
>
>
> on mergAVCamBarcodeFound pBarcode, pType
> global barcodeTarget
> dispatch "scanReturned" to barcodeTarget with pBarcode
> end mergAVCamBarcodeFound
>
>
>
> on stopBarcodeScanner
> global barcodeScannerIsLive
> if not barcodeScannerIsLive then exit stopBarcodeScanner # or will throw
> an error
> mergAVCamStopBarcodeReader
> mergAVCamDelete
> put false into barcodeScannerIsLive
> end stopBarcodeScanner
>
> On Sat, Feb 19, 2022 at 11:05 AM Klaus major-k via use-livecode <
> use-livecode at lists.runrev.com> wrote:
>
> > Hi Tom,
> >
> > > Am 19.02.2022 um 17:00 schrieb Tom Glod via use-livecode <
> > use-livecode at lists.runrev.com>:
> > >
> > > Hi Folks,
> > >
> > > I've done some searches and its still not clear to me, a lot of old
> posts
> > > and no clear answer that I found that I can be sure applies in 2022.
> > >
> > > Do we have a working QR code reader library. widget, external?
> > > For android? ios?
> > > I don't mind paying for it.
> > >
> > > I know for desktop I can probably use the browser widget with the
> camera,
> > > and some JS library.
> > > But has anyone successfully integrated a reader into a mobile app?
> >
> > yes, check "Android Barcode Library" in the dictionary.
> > Works fine on Android, no idea about iOS, sorry.
> > But maybe some of the MERGEXT... externals will do the job.
> >
> > > Thanks,
> > >
> > > Tom
> >
> > Best
> >
> > Klaus
> >
> > --
> > Klaus Major
> > https://www.major-k.de
> > https://www.major-k.de/bass
> > klaus at major-k.de
> >
> >
> > _______________________________________________
> > use-livecode mailing list
> > use-livecode at lists.runrev.com
> > Please visit this url to subscribe, unsubscribe and manage your
> > subscription preferences:
> > http://lists.runrev.com/mailman/listinfo/use-livecode
> >
>
>
> --
> On the first day, God created the heavens and the Earth
> On the second day, God created the oceans.
> On the third day, God put the animals on hold for a few hours,
> and did a little diving.
> And God said, "This is good."
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>
More information about the use-livecode
mailing list