Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to get location information in WKWebView on iOS 16.4+ #998

Open
2 of 3 tasks
OS-ricardomoreirasilva opened this issue Apr 20, 2023 · 3 comments
Open
2 of 3 tasks

Comments

@OS-ricardomoreirasilva
Copy link

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

  • I searched for existing GitHub issues
  • I updated all Cordova tooling to most recent version
  • I included all the necessary information above
@jcesarmobile
Copy link
Member

can you provide a sample app?

@OS-ricardomoreirasilva
Copy link
Author

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.

@OS-ricardomoreirasilva
Copy link
Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants