title: `navigator.geolocation.getCurrentPosition()` hangs on iOS PWA
body: <p>I have this snippet:</p>
  <pre><code>const getCurrentPosition = () =&gt;
    new Promise&lt;GeolocationPosition&gt;((resolve, reject) =&gt; {
      if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(resolve, reject, {
          timeout: 5000,
          maximumAge: 2000,
          enableHighAccuracy: true,
        });
      } else {
        reject(new Error('Browser does not support geolocation!'));
      }
    });
  </code></pre>
  <p>Which I call like so:</p>
  <pre><code>try {
    const { coords } = await getCurrentPosition();
    // do stuff with coords
  }
  catch (e){
    // handle the error
  }
  </code></pre>
  <p>When executing this code in an iOS PWA (<code>navigator.standalone</code>) if I have my location settings for Safari (<code>Settings</code> &gt; <code>Privacy</code> &gt; <code>Location Services</code> &gt; <code>Safari Websites</code>) set to: <code>Ask Next Time</code>, the <code>getCurrentPosition()</code> promise hangs and does not timeout, resolve or reject. It does not prompt me for my location like it does in the iOS Safari browser</p>
  <p>If I change the settings to <code>Never</code> or <code>While Using the App</code>, then it prompts me and works fine.</p>
  <p>I want to be able to handle the scenario where a user has set their settings to <code>Ask Next Time</code> whilst using a PWA.</p>