cordova-plugin-inappbrowser
cordova-plugin-inappbrowser copied to clipboard
Unable to get location information in WKWebView on iOS 16.4+
Bug Report
Problem
What is expected to happen?
This is the behaviour occurring on iOS versions lower than 16.4, which is the intended one.
A popup appeared twice when retrieving location information for the first installed app. You can get location information by executing the navigator.geolocation.getCurrentPosition method on a web page opened in WKWebView. The first time, a popup location permissions for the app's domain appeared in a popup a and second requesting permission for Safari (WKWebView) location information was displayed
What does actually happen?
This is what's happening on 16.4+.
The permission request popup for Safari (WKWebView) is not displayed, and only the permission request for the app domain is displayed in a popup. After enabling popups and running the navigator.geolocation.getCurrentPosition method does not work and I am unable to get the location. Debug log reports the following error message: … ** whose view is not in the window hierarchy**.
Information
This appears to be an issue occurring due to an update Apple introduced for WKWebView on version 16.4, as a couple of threads are available online with users facing the same issues. This is occurring on CDVWKInAppBrowser.m on the show:withNoAnimate: method.
The issue seems to occur when a view controller is presented by another view controller and it's suggested that replacing presentViewController by pushViewController can temporarily fix the issue. On the InAppBrowser plugin, this is not achievable as the view to present is a CDVInAppBrowserNavigationController and UINavigationControllers can't be pushed.
This is severely impacting our customers, with no fix found until now.
Environment, Platform, Device
This happening with every version working with iOS 16.4+.
Checklist
- [x] I searched for existing GitHub issues
- [ ] I updated all Cordova tooling to most recent version
- [x] I included all the necessary information above
can you provide a sample app?
Hey @jcesarmobile,
Let me check if it's possible to provide you one. I'll comeback to you as soon as I have an answer.
In the meantime, I can share you videos of the two behaviours we're getting. The one that displays the Location alert is 16.2 and the other 16.4.
https://user-images.githubusercontent.com/97543217/234512612-a2eedc3f-d7dd-4c6d-b6db-88042b639dbe.mov https://user-images.githubusercontent.com/97543217/234512640-5b5d22a4-78e0-4557-8c67-2d432d520fd7.mov
Looking forward to your feedback.
Hey @jcesarmobile,
Won't be able to provide you a Sample App. But I'm available to help you providing anything you need to replicate the issue.