Files
bsky-social-app/modules/expo-get-referrer/ios/ExpoGetReferrerModule.swift
T
2024-06-14 00:40:47 -07:00

38 lines
1.1 KiB
Swift

import UIKit
import ExpoModulesCore
public class ExpoGetReferrerModule: Module {
public func definition() -> ModuleDefinition {
Name("ExpoGetReferrer")
AsyncFunction("getReferrerInfoAsync") { (promise: Promise) in
let defaults = UserDefaults.standard
let referrerUrlString = defaults.string(forKey: "referrer")
let referrerApp = defaults.string(forKey: "referrerApp")
if let referrerUrlString = defaults.string(forKey: "referrer"),
let url = URL(string: referrerUrlString)
{
if #available(iOS 16.0, *) {
promise.resolve([
"referrer": url.absoluteString,
"hostname": url.host() ?? ""
])
} else {
promise.resolve([
"referrer": url.absoluteString,
"hostname": url.host ?? ""
])
}
} else if let referrerApp = defaults.string(forKey: "referrerApp") {
promise.resolve([
"referrer": referrerApp,
"hostname": referrerApp,
])
} else {
promise.resolve(nil)
}
}
}
}