Close IAB when it triggers an intent (#8454)
* Close IAB if it opens a link to the app * native only * await close
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import {Alert} from 'react-native'
|
import {Alert} from 'react-native'
|
||||||
import * as Linking from 'expo-linking'
|
import * as Linking from 'expo-linking'
|
||||||
|
import * as WebBrowser from 'expo-web-browser'
|
||||||
|
|
||||||
import {useOpenComposer} from '#/lib/hooks/useOpenComposer'
|
import {useOpenComposer} from '#/lib/hooks/useOpenComposer'
|
||||||
import {logger} from '#/logger'
|
import {logger} from '#/logger'
|
||||||
@@ -32,7 +33,12 @@ export function useIntentHandler() {
|
|||||||
const {tryApplyUpdate} = useApplyPullRequestOTAUpdate()
|
const {tryApplyUpdate} = useApplyPullRequestOTAUpdate()
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
const handleIncomingURL = (url: string) => {
|
const handleIncomingURL = async (url: string) => {
|
||||||
|
if (isNative) {
|
||||||
|
// Close in-app browser if it's open
|
||||||
|
await WebBrowser.dismissBrowser().catch(() => {})
|
||||||
|
}
|
||||||
|
|
||||||
const referrerInfo = Referrer.getReferrerInfo()
|
const referrerInfo = Referrer.getReferrerInfo()
|
||||||
if (referrerInfo && referrerInfo.hostname !== 'bsky.app') {
|
if (referrerInfo && referrerInfo.hostname !== 'bsky.app') {
|
||||||
logger.metric('deepLink:referrerReceived', {
|
logger.metric('deepLink:referrerReceived', {
|
||||||
|
|||||||
Reference in New Issue
Block a user