Firemonkey embedded ios web browser displays "done" bar issue - ios

I have an interesting issue with an IOS app, 32bit at present.
I have a simple project with one form, a button and a TWebBrowser component.The "onclick" of the button sets the align property of the twebbrowser to client and opens a webpage (www.trademe.co.nz for testing).
Every thing works ok until I go to use the virtual keyboard (e.g. enter a search). When the virtual keyboard appears I am getting a second "done" button bar appearing above (and behind?) the main one. The main "done" bar includes next and previous buttons, whereas the background one doesn't. It appears that there are two keyboards appearing. I have the issue on both my test phones, one running IOS7 and the other running IOS6 and I believe it is also happening under IOS8.
Does anyone have any idea what causes this?
TIA

Related

IOS native controls invisible/hidden in PWA

We have a PWA (web app) that the user can add to the homescreen to make it look more like an app. Some users have reported a strange issue that only seems to appear on IOS sometimes when the following step has been made.
Open the app from the homescreen
Use the app for a while
Put it into background
Turn off the screen for a while
Turn the screen back on and put the app to foreground again
The bug is that nothing seems to happen when you click on a select or date input control. First I thought that there was some overlay in the app that was blocking the ui controls but the elements receive focus on click, but not options are shown.
Now it really becomes strange. When I tried to click a little bit under the select input an option was selected. The same thing occured with a time select. If I first clicked on the timeselect input control and then a little bit under, it updated the time.
So, the controls seems to be there but nothing is visible on the screen. I have only been able to reproduce this on my own once but multiple users have been reporting the same thing. The only way to work around the bug is to restart the app.
It seems to be for all native safari controls that shows some kind of modal/popover.
I've did an indepth investigation on this select dropdown problem and posted an issue at bugs.webkit.org: https://bugs.webkit.org/show_bug.cgi?id=238318
It's a problem with dropdowns of several components (such as select, input file/date/month) where either the animation to have the dropdown appear or disappear seems to get stuck. You can sometimes see the dropdown being tiny and very transparent (if you zoom into a screenshot) and sometimes you'll be able to select an option even though you don't see the dropdown.

Electron BrowserWindow shows taskbar when focused

My application is an overlay (alwaysOnTop) for a full screen game and when the user clicks on my overlay it takes focus and shows the taskbar on top of their game as well. Taking focus is fine, but I can't have the taskbar show.
It says in the BrowserWindow docs:
not a toolbox window which can not be focused on
Implying that it is possible to create a window which cannot be focused on.
Does anyone know how to create a toolbox window, or to simply avoid having the taskbar showing when clicking on the electron window?
I should mention I've tried setAlwaysOnTop and skipTaskbar. I also have transparent: true and frame: false.
The overlay I've created is the "Safelane, Midlane, Offlane" buttons. When I run the application it shows on top of the full screen app (Dota 2) like this:
After clicking on the interface the taskbar appears. It would be fine that the full screen app (Dota) loses focus, the task bar appears on top which breaks the continuity of the experience:
I would like the experience to stay like the first image--when the user clicks on anything in my overlay, the taskbar should not show.
Electron GitHub Issue
Additional Solution Info -- After using Gaafar's solution below
Setting kiosk: true in the setup does not seem to allow it to render transparent. Using setKiosk(true) within a setTimeout after the window has been opened seemed to work.
I also found that any windows using kiosk or fullscreen with transparency had rendering issue. It would render multiple times on top of itself and could not unrender items (display: none in css would do nothing). The way I fixed this was by using Electron Window Manager creating a single kiosk window with nothing in it and creating other non-kiosk windows with the HTML / CSS interfaces. The result:
All of the interfaces can be interacted with, mouse and keyboard.
Rendering happens as it does regularly in electron.
The fullscreen application below receives input through any transparent areas.
Taskbar never shows up on any input.
skipTaskbar: true is to prevent showing your app in the taskbar.
To hide the taskbar altogether use fullscreen or kiosk mode instead
fullscreen: true
or
kiosk: true
EDIT:
There are some issues open where fullscreen or kiosk modes prevent the transparency of the window.
A solution that works for me is to run with these flags --enable-transparent-visuals --disable-gpu
issue & solution: https://github.com/electron/electron/issues/2170#issuecomment-145942717
showInActive();
set your BrowserWindows, focusable: false
Im gonna post a solution some might be facing with full screening, I was facing this issue and wandering here and there, this StackOverflow post kept coming up.
So Im posting it here so people getting similar problems can get help.
When fullscreening taskbar getting in way.
When you fullscreen using mainWindow.setFullScreen(true) taskbar will get in way when you are on home (all windows minimized) in windows.
Here is the solution:
ipcMain.on("fullscreenon",()=>{
mainWindow.setAlwaysOnTop(true, 'screen-saver');
mainWindow.setFullScreen(true);
})
//The order of the commands is important below
//don't setAlwaysOnTop() before getting out of fullscreen.
ipcMain.on("fullscreenoff",()=>{
mainWindow.setFullScreen(false);
mainWindow.setAlwaysOnTop(true, 'floating')
})
Basically, by default setFullscreen uses the level: "floating". We need a higher level, "screen-saver" is the highest level I think.

Menubar in UIWebview not showing up on first longpress action

So this problem is a little tricky. Basically, I found that the menu bar won't pop up in a UIwebview the first time you long press on a word. It would show something like this:
Example img
The words are selected, but the menubar is now showing. However, the second time you longpress on another word,the menubar just pops up fine.
Example img
Also, if you tap anywhere in the UIwebview or scroll it before longpressing on a word, the menu bar also shows up. It's just when the long press action is the first action you have with the UIwebview, the menu bar won't show up.
I checked this problem with some other third-party web browsers on app store (firefox, chrome). The same problem exists. However, Safari does not have this problem. Also, my iPad 2 does not have this problem either. But my iPad air does, so do the xcode simulators.
Not sure if I'm describing this problem clearly, thanks in advance for anyone that helps.
This problem is kind of Bug in iOS 9 web view
Me and my colleague was having same discussion yesterday.
Also it is only on Web view,Messaging apps works fine

IOS native keyboard pushing entire webview up - cordova app

I am developing an app (IOS platform) using HTML5, CSS3, angular and cordova(3.8) and stuck with an major issue.
I have a page with footer having three buttons. On click of each button a modal comes up from the bottom. Modal position is set to fixed and inside it as scroll-able container. scroll-able container contains a text area where user can input some text.
Whenever the modal comes up, text area is focused so that keyboard comes up by default. The issue is whenever native keyboard comes up webview is pushed up and entire modal gets scrolled.
I saw same issues been posted by others and I tried few solutions mentioned in reply for those questions like using ionic keyboard plugin, setting scrollTop to 0 on textarea focus. But nothing worked out.
In config.xml, I have set DisallowOverscroll to true.
It would be great helpful if someone help me with this issue ?

iOS keyboard no longer shows after upgrading environment

i hadn't touched the code of my iOS app in a while, and since then the latest iOS version became 4.3.2. i upgraded my environment in both XCode and on my device. after compiling my application and running it in both the simulator and on device, the keyboard no longer shows up when selecting editable items inside a webview.
my app's first screen is an OAuth dialog, and as such, I can't get past it without the keyboard, so i tried embedding an edit box in the same parent view as the webview, and it worked! except, the dismiss keyboard button did not work - the keyboard stayed visible even when i pressed it. touching away from the edit box (thus forcing it to resign first responder status) did make the keyboard go away.
i figured it would be something in my webview delegate code, but didn't see anything there that could stop a keyboard from showing.
in the XIB that sets up the webview, i checked that user interaction is enabled, so that's not the problem either. when i touch an edit box in the webview, the edit box enters editing mode - the keyboard just doesn't show.

Resources