Every line of 'react native open link in browser and return to app' code snippets is scanned for vulnerabilities by our powerful machine learning engine that combs millions of open source libraries, ensuring your JavaScript code is secure.
44 async openLink() { 45 const { url, statusBarStyle } = this.state; 46 try { 47 if (await InAppBrowser.isAvailable()) { 48 // A delay to change the StatusBar when the browser is opened 49 const animated = true; 50 const delay = animated && Platform.OS === 'ios' ? 400 : 0; 51 setTimeout(() => StatusBar.setBarStyle('light-content'), delay); 52 const result = await InAppBrowser.open(url, { 53 // iOS Properties 54 dismissButtonStyle: 'cancel', 55 preferredBarTintColor: '#453AA4', 56 preferredControlTintColor: 'white', 57 readerMode: false, 58 animated, 59 modalPresentationStyle: 'fullScreen', 60 modalTransitionStyle: 'partialCurl', 61 modalEnabled: true, 62 enableBarCollapsing: false, 63 // Android Properties 64 showTitle: true, 65 toolbarColor: '#6200EE', 66 secondaryToolbarColor: 'black', 67 enableUrlBarHiding: true, 68 enableDefaultShare: true, 69 forceCloseOnRedirection: false, 70 // Specify full animation resource identifier(package:anim/name) 71 // or only resource name(in case of animation bundled with app). 72 animations: { 73 startEnter: 'slide_in_right', 74 startExit: 'slide_out_left', 75 endEnter: 'slide_in_left', 76 endExit: 'slide_out_right' 77 }, 78 headers: { 79 'my-custom-header': 'my custom header value' 80 } 81 }); 82 // A delay to show an alert when the browser is closed 83 await this.sleep(800); 84 Alert.alert('Response', JSON.stringify(result)); 85 } else { 86 Linking.openURL(url); 87 } 88 } catch (error) { 89 Alert.alert(error.message); 90 } finally { 91 // Restore the previous StatusBar of the App 92 StatusBar.setBarStyle(statusBarStyle); 93 } 94 }
7 export async function open (url) { 8 const ok = await Linking.canOpenURL(url) 9 if (!ok) return false 10 const opened = await Linking.openURL(url) 11 return opened 12 }
210 openExternalLink(href) { 211 const a = document.createElement('a') 212 a.href = link 213 a.target='_blank' 214 a.click() 215 }
157 openLink(url: string) { 158 shell.openExternal(url); 159 trackEvent('Outbound Link', 'Click', url); 160 }
51 openUrl(url: string): Promise { 52 return; 53 }
270 openLink({ href, target, currentTarget, metaKey }) { 271 let resolved = href || this.resolveHref(target || currentTarget); 272 if (!resolved) { 273 return; 274 } 275 if (target && target.closest('.no-open-link-events')) { 276 return; 277 } 278 279 let { protocol } = url.parse(resolved); 280 if (!protocol) { 281 protocol = 'http:'; 282 resolved = `http://${resolved}`; 283 } 284 285 if (['mailto:', 'mailspring:'].includes(protocol)) { 286 // We sometimes get mailto URIs that are not escaped properly, or have been only partially escaped. 287 // (T1927) Be sure to escape them once, and completely, before we try to open them. This logic 288 // *might* apply to http/https as well but it's unclear. 289 const sanitized = encodeURI(decodeURI(resolved)); 290 remote.getGlobal('application').openUrl(sanitized); 291 } else if (['http:', 'https:', 'tel:'].includes(protocol)) { 292 shell.openExternal(resolved, { activate: !metaKey }); 293 } 294 return; 295 }
90 openUrl(urlToOpen) { 91 Linking.openURL(urlToOpen); 92 }
306 getDeferredApplink(): Promise { 307 return; 308 }
26 export function openURL(url, title, showNavigationToolbar, requireLocationPermission) { 27 return navigateTo(getWebViewRoute(url, title, showNavigationToolbar, requireLocationPermission)); 28 }
48 function openExternal (e, url) { 49 e.preventDefault() 50 shell.openExternal(url) 51 }