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 )
- trigger open WebBrowser
- swipe right from the left edge
- notice WebBrowser will go away
- trigger open WebBrowser again
- 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);
}
}