We are doing ionic2 application to scan the barcode and take the user to detail of that product. The screen has input field with Opacity 0 since the input should not be visible to user to prevent user interaction. Right now the functionality works fine but the keyboard opens by default when ever user visits this screen.
I tried to user below code to hide the keyboard but this looks odd as the keyboard visible for fraction of time and then hidden;
cordova.plugins.Keyboard.close();
I want to focus the input without keyboard open, is it possible ? could you please guide me
After al long research found that there is no solution to focus the input without keyboard. Hence i changed the approach and create the broadcast receiver to handle the barcode scan.
Related
I have a very simple UI that has one entry control to enter phone number and a button. The entry control has a handler for removing border around it. When the entry control got focus, keyboard pops up. But when I try to tap outside the entry control such as on the screen empty area, the keyboard does not dismiss and the entry control does not lose focus. Also since the button is at the bottom of the screen, therefore, the soft keyboard hides it and there is no way to tap the button. The button can only be tapped if I press the Android device back button.
At present, I have not checked this behavior on an iOS device.
This was not a problem in Xamarin Forms though. I searched a lot on Internet and found that it is currently a bug in MAUI.
I tried to attach a tap gesture on the parent layout control and invoked platform-specific code to hide the keyboard but it seems the entry does not lose focus and in turn the tap gesture event is never called.
However, the entry control should lose focus automatically when I tap outside the entry control (such as on the screen) and the soft keyboard should automatically dismiss.
Please provide a workaround if there is any.
Known bug. Removing the focus sometimes helps. Sometimes you need to do Disable/Enable in sequence. (I go with the second).
If you want, you can read this for example:
https://github.com/dotnet/maui/issues/12002
(Most disturbing part, considering this is know bug for half year+)
We can leave the behavior how this is for now in NET7 and provide an
API in NET8 that lets users toggle this behavior on/off for iOS and
Android
I'm developing a HTML5 chat application, and I need to scroll down the message's area each time the keyboard is open. For that I'm listenig to the focus event on the textbox input.
But, in Android you can hide the keyboard without losing focus by pressing the arrow down button next to the home button (at least in 4.2), if you press again in the textbox input it will re-open the keyboard without triggering the "focus" event.
Is there any workaround to this?
Thanks.
I want to determine the duration of user taps or swipes on the keyboard so that I can determine how long words/letters take a person to input using the soft keyboard.
Is there a way to detect only that the user has touched the keyboard (I don't care about what they are entering at this point)? I am using a TextWatcher to get the end of the tap/swipe, but I have not had any success getting the beginning of the tap/switch when the user first touches the keyboard.
Is there a way to detect only that the user has touched the keyboard
Write your own input method editor (a.k.a., soft keyboard) that contains your desired time recording. Then, convince users to switch to use your input method editor.
I am using a TextWatcher to get the end of the tap/swipe
No, you are using a TextWatcher to detect changes to text in an EditText. Such changes may be from a user interacting with an input method editor. Or, they may be from the user using a physical keyboard. Or, they may be from action mode operations like cut and paste.
Most of the time (but not always), when I finish typing in a or and the soft keyboard hides, the view area is left raised with a black space on the bottom. Clicking, tilting or otherwise engaging the phone corrects the screen. However, user's first motion is usually pressing , but if you click submit it jumps down and you actually just click on the text area again. How do you stop this and get the screen to reset after the keyboard closes.
Take a look at you AndroidManifest.xml
http://developer.android.com/guide/topics/manifest/activity-element.html
I think you need to change android:configChanges.
I have the exact same problem what i did was handle hidekeyboard even in javascript and do something like window.scrollTo(0,0) or $("input[type=text],textarea").blur();
This will cause the the screen to get back to normal position
But there is just one problem when click from input field of type = text to a input field password it internally hide the keyboard which causes the hidekeyboard event to fire and scrolls the screen to top. This is the only side effect of this
Let me know if you find the solution for this
This is driving me crazy and I can't find the answer anywhere.
I have forms in my phonegap app. If the input type="text", the text keyboard pops up and "go" is displayed in the corner. When you click go, it submits the form. That all works as I would expect. But if I use input type="number", the number keyboard pops up and "next" is displayed in the corner. When you click next, if there is another input box before the button tag, it goes to that input. That's okay. . . not ideal, but makes sense. But if it is the last input field on the page, click "next" does nothing. It doesn't put focus on the button (even with tabindex) and it doesn't submit the form (ideal).
I'm using phonegap 1.3.0 and jquery 1.7 if any of that helps.
You can detect the next keyboard press by using the following bind in JQuery:
$('input').on('keydown', function(e){
if(e.which === 9) {
//your code here
}
});
The 'next' button emulates the tab keypress event on a keyboard, which is key code 9. Unfortunately, keypress and keyup events do not detect the next key event, so you need to bind it on keydown.
Hope that helps!
Okay, now I do have something that looks like an answer and quacks like an answer.
It's a horrible hack, and I am experiencing some side-effects at this point, but it's a small leap for mankind anyway.
Add an invisible text input to your form, which automatically submits the form as soon as it receives focus. Since it can only receive focus from the user pressing 'Next' or tabbing from the last number field, there should be a pretty solid logic in the user sequence.
<input type='text' style="opacity:0;" onfocus="javascript:$('#thisForm').submit();">
The side effects are:
the hidden form field will briefly be visible. You can avoid this by
using the onfocus handler to also re-focus on the number field that
was just left. Or you can set the width of the input to 0. The latter works best for me.
if you're using jQueryMobile like me, you're inviting horrible page transition ugliness on yourself, so if your form is in a dialog and submitting the form closes the dialog, be sure to set the dialog transition (when it is being opened from a previous screen) to 'none'.