Expo SDK 36, [expo-web-browser]swiper right turn off WebBrowser, can not open again.

When use genture swiper right turn off WebBrowser, it can not open again.
Error message: Another WebBrowser is already being presented
This web brwoser bug since 2017 still exist.
(iOS WebBrowser: swipe right will turn off WebBrowser, but it can never be opened again · Issue #135 · expo/expo · GitHub)

Environment

Expo CLI 3.15.4 environment info:
System:
OS: macOS Mojave 10.14.6
Shell: 5.3 - /bin/zsh
Binaries:
Node: 10.16.0 - ~/.nvm/versions/node/v10.16.0/bin/node
Yarn: 1.21.1 - /usr/local/bin/yarn
npm: 6.10.2 - ~/.nvm/versions/node/v10.16.0/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
IDEs:
Android Studio: 3.6 AI-192.7142.36.36.6241897
Xcode: 11.3.1/11C504 - /usr/bin/xcodebuild
npmPackages:
expo: ^36.0.0 => 36.0.2
react: 16.9.0 => 16.9.0
react-native: https://github.com/expo/react-native/archive/sdk-36.0.1.tar.gz => 0.61.4
react-navigation: ^4.0.10 => 4.0.10
npmGlobalPackages:
expo-cli: 3.15.4

Steps to Reproduce (from iOS WebBrowser: swipe right will turn off WebBrowser, but it can never be opened again · Issue #135 · expo/expo · GitHub )

  1. trigger open WebBrowser
  2. swipe right from the left edge
  3. notice WebBrowser will go away
  4. trigger open WebBrowser again
  5. notice warning “Another WebBrowser is already being presented.” and WebBrowser cannot open afterwards

code:

async function openLink(url) {
  try {
    await WebBrowser.openBrowserAsync(url);
  } catch(err) {
    console.log("openLink error:",err)
    try {
      await WebBrowser.dismissBrowser();
    } catch(err) {
      console.log('Could not dismiss  browser:', err);
    }
    try {
      await WebBrowser.openBrowserAsync(url);
    } catch(err) {
      console.log('Could not reopen browser:', err);
    }

}

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.