Welcome Guest Search | Active Topics | Sign In | Register

Showing virtual keyboard Options
PhilipT
Posted: Wednesday, April 5, 2017 3:29:54 AM
Rank: Advanced Member
Groups: Member

Joined: 2/15/2014
Posts: 52
Hi EO

I am using EO.WebBrowser 16.1.17.0 and trying out the virtual keyboard.

Below is my code
BrowserOptions options = new BrowserOptions();
options.EnableWebSecurity = false;
EO.WebBrowser.Runtime.SetDefaultBrowserOptions(options);

EO.WebBrowser.Runtime.RemoteDebugPort = 1234;
EO.WebBrowser.Runtime.ExtraCommandLineArgs = "--touch-events";
EO.WebBrowser.Runtime.AllowProprietaryMediaFormats();
EO.WebBrowser.Runtime.AlwaysShowOnScreenKeyboardOnTouch = true;

After grabbing the window handle of the Windows Form, i navigated to facebook page to test if i can login with virtual keyboard when i touch the username and password fields (not using mouse).

but no virtual keyboard popped out. Am i missing something?

Hope to hear from you soon...
eo_support
Posted: Wednesday, April 5, 2017 9:16:34 AM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,067
Hi,

Please check if the latest build resolves the issue for you. We did fix something related to virtual keyboard in build 17.0.53.

Thanks!
PhilipT
Posted: Wednesday, April 5, 2017 10:13:42 AM
Rank: Advanced Member
Groups: Member

Joined: 2/15/2014
Posts: 52
Hi

I tried the latest build as well after i posted as i have a feeling you will ask me to try the latest build and it is the same.

I am running the application on a Kiosk machine.

Can you try at your end? The code is as simple those code i pasted here and using LoadUrlAndWait function to load the facebook page, nothing fancy.

Thanks!
eo_support
Posted: Wednesday, April 5, 2017 11:31:25 AM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,067
What OS do you use? We tested it here with Windows 10 by following these steps:

1. Add the following code to our TabbedBrowser sample application:

Code: C#
EO.WebEngine.Engine.Default.Options.AlwaysShowOnScreenKeyboardOnTouch = true;


Before new MainWindow();

2. Run it, then type in facebook.com in the address bar and enter.

Now touch any of the textbox field (we tested the landing page without logging in, where there are "Email or Phone" and "Password" textboxes, along with textboxes for sign up), the virtual keyboard would appear;

Note that we did not set ExtraCommandLineArgs.

Can you try the same and see if it works?

Thanks
PhilipT
Posted: Wednesday, April 5, 2017 11:38:13 AM
Rank: Advanced Member
Groups: Member

Joined: 2/15/2014
Posts: 52
The OS is Windows 7.

I will try with EO.WebEngine.Engine.Default.Options.AlwaysShowOnScreenKeyboardOnTouch. Will also try with and without the ExtraCommandLineArgs.

Is there any difference when setting the AlwaysShowOnScreenKeyboardOnTouch property with EO.WebBrowser and EO.WebEngine?

Will let you know the result tomorrow.
eo_support
Posted: Wednesday, April 5, 2017 11:49:43 AM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,067
Please see our last reply in this thread for the difference between EO.WebEngine.Engine.Default.Options and EO.WebBrowser.Runtime:

https://www.essentialobjects.com/forum/postst10340_ThreadRunner-with-proxy.aspx

Let us know how it works on Windows 7 for you. Currently we do not have a Windows 7 touch environment here. So if that's the problem, it may take a little longer for us to acquire a system and test on it.

Thanks!
PhilipT
Posted: Thursday, April 6, 2017 3:06:43 AM
Rank: Advanced Member
Groups: Member

Joined: 2/15/2014
Posts: 52
Hi EO

The TabbledBrowser sample with the amended code still doesn't work on Windows 7 kiosk machine. It worked on my colleague's Windows 10 touchscreen notebook. But my simple test app which i showed you didn't work even on their Windows 10 despite changing all the EO.WebBrowser.Runtime to EO.WebEngine.Engine.

For Windows 7 kiosk machine, i even installed the Tablet PC Components to see if it works but to no avail.

Can EO please help to make it work on Win7? We cannot migrate to Win10 as our XFS hardware devices are certified on Win7 only.

Thanks!
eo_support
Posted: Thursday, April 6, 2017 10:32:13 AM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,067
Hi,

Can you send your test app to us? See here for more details:

https://www.essentialobjects.com/forum/test_project.aspx

Thanks!
eo_support
Posted: Friday, April 21, 2017 11:17:42 AM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,067
Hi,

We have looked into this and posted a new build that should address this issue. Please download the new build from our download page.

In addition to download the new build, for WPF project on Windows 7 only, you also need to call the following function when your application starts:

Code: C#
public static void DisableWPFTabletSupport()
{
    // Get a collection of the tablet devices for this window. 
    TabletDeviceCollection devices = System.Windows.Input.Tablet.TabletDevices;

    if (devices.Count > 0)
    {
        // Get the Type of InputManager.
        Type inputManagerType = typeof(System.Windows.Input.InputManager);

        // Call the StylusLogic method on the InputManager.Current instance.
        object stylusLogic = inputManagerType.InvokeMember("StylusLogic",
                    BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.NonPublic,
                    null, InputManager.Current, null);

        if (stylusLogic != null)
        {
            // Get the type of the device class.
            Type devicesType = devices.GetType();

            // Loop until there are no more devices to remove.
            int count = devices.Count + 1;

            while (devices.Count > 0)
            {
                // Remove the first tablet device in the devices collection.
                devicesType.InvokeMember("HandleTabletRemoved", BindingFlags.InvokeMethod | BindingFlags.Instance | BindingFlags.NonPublic, null, devices, new object[] { (uint)0 });

                count--;

                if (devices.Count != count)
                {
                    throw new Exception("Unable to remove real-time stylus support.");
                }
            }
        }
    }
}


For example, if you were to call the above code in our TabbedBrowser sample application, you would add the method to the App class and call it inside Application_Startup before everything else. The code is provided by Microsoft in their support forum and it is necessary because WPF has built-in support for stylus, not touch and by default, it interprets touch as stylus events. That logic must be removed in order for touch events to work properly. This code is not needed on Windows 10 (even though our test did not find any problem even if called on Windows 10) or Windows Forms project.

Please let us know if this resolves the issue for you.

Thanks!
PhilipT
Posted: Monday, April 24, 2017 1:00:05 AM
Rank: Advanced Member
Groups: Member

Joined: 2/15/2014
Posts: 52
Hi eo,

the latest version 17.1.30.0 does work now on my Windows 7 kiosk machine. This is after turning on the Windows feature Table PC components and configuring the UPDD setting to Extended Touch. Not sure if you had to do the same.

Two questions:
Is it possible to change the look and feel of the virtual keyboard? If I'm not mistaken, EO is making use of the Tabtip.exe so probably not?
Is it possible to turn on and off the virtual keyboard at runtime? If so, how do I do that?

Thanks
Philip

eo_support
Posted: Monday, April 24, 2017 10:38:51 AM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,067
Hi,

No. There is no way for you to turn on/off the virtual keyboard. That is automatically handled by the browser engine based on the touch events/focus.

Yes, the keyboard does rely on tabtip.exe, which is the standard way of supporting virtual keyboard.

Thanks!


You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.