diff options
Diffstat (limited to 'modules/expo-bluesky-swiss-army/src/Referrer/index.ios.ts')
-rw-r--r-- | modules/expo-bluesky-swiss-army/src/Referrer/index.ios.ts | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/modules/expo-bluesky-swiss-army/src/Referrer/index.ios.ts b/modules/expo-bluesky-swiss-army/src/Referrer/index.ios.ts new file mode 100644 index 000000000..2bf1497a0 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/Referrer/index.ios.ts @@ -0,0 +1,37 @@ +import {SharedPrefs} from '../../index' +import {NotImplementedError} from '../NotImplemented' +import {GooglePlayReferrerInfo, ReferrerInfo} from './types' + +export function getGooglePlayReferrerInfoAsync(): Promise<GooglePlayReferrerInfo> { + throw new NotImplementedError() +} + +export function getReferrerInfoAsync(): Promise<ReferrerInfo | null> { + const referrer = SharedPrefs.getString('referrer') + if (referrer) { + SharedPrefs.removeValue('referrer') + try { + const url = new URL(referrer) + return { + referrer, + hostname: url.hostname, + } + } catch (e) { + return { + referrer, + hostname: undefined, + } + } + } + + const referrerApp = SharedPrefs.getString('referrerApp') + if (referrerApp) { + SharedPrefs.removeValue('referrerApp') + return { + referrer: referrerApp, + hostname: referrerApp, + } + } + + return null +} |