I have created an iphone application, which gets the barcode value from the WASP scanner and do some logic.
I need to know is there any call back methods available in iPhone SDK so that we know the scanning is done in WASP?
Please help.
Thanks,
Bharathi
Could it be that the WASP scanner shows up in the default Bluetooth menu in the iOS Settings app? In this case, it probably advertises itself as a keyboard and simply inputs what it scans as a sequence of keystrokes. There's no way to intercept this with CoreBluetooth - maybe you can set the focus to an invisible text field and use an observer to detect when text has been entered into this field.
Related
I'm looking to see if it's possible to build iOS barcode scanner with Apples vision framework (Xcode, swift). I know how to build a barcode scanner when view controller is active, However I'm looking to see if somehow its possible to scan without a view controller being active (Whenever a barcode is placed infront of camera, it becomes active).
I couldn't find anything on internet so looking to see if its even possible.
How can I check if the device is a touch device or a mouse device?
Using kIsWeb is not sufficient because if using web version of the app on a mobile device kIsWeb returns true, but I need it to return false because it is a touch device.
Checking the platform doesn't work either because if using web version of the app on an iOS device for example returns false for iOS platform check.
Use case - I have two different types of video players for my app. One is suitable for touch devices (you tap to show and hide controls) and one is suitable for mouse devices (controls show when you mouse into the player and hide when you mouse out).
Youtube has the same idea. If I use the youtube app or website on my iPhone I get touch controls. If I use the youtube app or website on my iPad Pro I get touch controls. If I use the youtube website on my Mac I get mouse controls at all screen sizes (even mobile screen sizes).
So I guess I really just need to know platform on the web. I can get platform if not on the web.
Great question #jwasher! I had the same issue - a touch and swipe based UI that was great as a native mobile app, great as an single page web app (SPA) on mobile web browsers, but that was weird and clunky for mouse based interactions when the SPA was used in a desktop web browser.
The solution I have settled on is to wrap sensitive widgets in a MouseRegion (https://api.flutter.dev/flutter/widgets/MouseRegion-class.html) to detect mouse activity at runtime, then reacting by augmenting the UI with buttons to provide a mouse focussed way of triggering actions previously only linked to touch triggers.
You could use this to "mouse-enable" individual widgets, or you could wrap the whole app in a MouseRegion, trip a state field when activity was detected then rebuild the widget tree in a substantially different way for point and click users.
This strategy may incur some minor complexity/CPU overhead on devices that will never have a mouse attached (like a smartphone), but the solution will be more flexible than a build or configuration time capability determination. If a user starts the app on a tablet, then puts it in a stand and attaches a bluetooth mouse - it will react appropriately.
A device isn't "a mouse device" or "a pointer device". Events have an input type--see Pointer event.kind--but not the whole device. A laptop can have a touch screen, and a tablet can have a stylus or external mouse; an app running in those environments can receive both types of event.
Without knowing what you are trying to accomplish with this classification, is hard to advise on how to accomplish it. Trying to style your UI based on a guess of the primary interaction mode, for instance, is a completely different problem than reacting to a mouse event differently than a touch event.
I'm just trying to develop first-screen contents application which acts like...
If you unlock your smartphone, this application show up and show its contents like today's whether, a sentence of bible, etc.. before smartphone's own contents. And then if you touch the screen one more time, you can use your smartphone.
So it seems like.. a splash screen of smartphone, instead an application.
Because I'm not good at English, I don't know how to call this technique by English.
So what I want to know is anything. The name of this technique.. helpful flutter widget.. or any reference about this written by flutter.
Thank you.
For Android:
You can't listen to phone unlock event after Android 8.0, see https://stackoverflow.com/a/20225681/10874380
For iOS:
I'm not very familiar with iOS restrictions, but as far as I know, apps on iOS has no way to know the phone is unlocked. Also, ios apps can't open without user tapping on it.
This is a bit curly, and I am not sure there is an answer.
I have a simple application that uses a handheld bluetooth scanner paired to an iPhone to keep lists of parcels coming of the back of trucks.
The scanner acts-as a keyboard sending character strings on scan. In the application the user must pair with the scanner in settings.
Upon scan complete a textfield is populated with the sent string. The last character is a return char, at which time the contents are added to a datasource for a UITableView.
The problem is this; Once the scanner has been used once the system seems to recognize it as the only user input. Any future attempt to bring up the soft keyboard fails. This goes beyond the scanning application ~ quitting the app completely and attempting to use Apples SMS app also fails to bring up the keyboard.
Is there any (apple legal) way of either using both or setting preferred input device? There seems to be a myriad of legal issues around Bluetooth and accessories, I am wondering if I am out of luck. Has anyone heard of anything that might help me out?
It appears I am not alone (as in this post regarding iPad soft keyboard)
I think you've pretty much covered it.
According to HT4111:
You can stop using a Bluetooth accessory by either turning off the accessory, or turning off Bluetooth on iPad.
According to Gizmodo's 10 iPad Essential Tips & Tricks:
When you have a Bluetooth keyboard connected to your iPad, the virtual keyboard will cease to appear. (This is a good thing.) However, what if, for some random reason, you needed that virtual keyboard? Don't unpair your Bluetooth. Just... Hit the eject key on Apple's physical keyboard. It'll bring up the virtual one.
If there's an off button on the scanner, then hit that. If you have an actual bluetooth keyboard, then use that (or hit its eject button if it's an Apple keyboard). If you have control over the design of the scanner hardware, then you can add a "show keyboard" button (I'm not sure which keycode Apple uses for "eject") if turning it off is too tedious.
Socket Mobile just added a new "double tap" feature to their Bluetooth barcode scanner that lets you open the onscreen keboard. There's a video demo on YouTube. http://www.youtube.com/socketmobile
Is it allowed to create a custom keyboard. Will apple approve my app if I used my own keyboard instead of using default one. howsoever I don't have button images, I guess I need to use same default keyboard images do so. Is there any image repository where I can get exact keypad button icon.
Thanks
They will almost undoubtedly reject your app.
The iPad Human Interface Guidelines that iPhone OS 3.2 supports keyboard customization http://developer.apple.com/iphone/library/documentation/General/Conceptual/iPadHIG/UIElements/UIElements.html#//apple_ref/doc/uid/TP40009446-CH6-SW7