9d6efdd43b
Initialize iOS and Android native projects for the Time to Leave app. Rename Android package to com.floegger.timetoleave and add iOS project files. Add FontAwesome icons, calendar types, and dependencies.
71 lines
2.2 KiB
Swift
71 lines
2.2 KiB
Swift
import Expo
|
|
import React
|
|
import ReactAppDependencyProvider
|
|
|
|
@UIApplicationMain
|
|
public class AppDelegate: ExpoAppDelegate {
|
|
var window: UIWindow?
|
|
|
|
var reactNativeDelegate: ExpoReactNativeFactoryDelegate?
|
|
var reactNativeFactory: RCTReactNativeFactory?
|
|
|
|
public override func application(
|
|
_ application: UIApplication,
|
|
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil
|
|
) -> Bool {
|
|
let delegate = ReactNativeDelegate()
|
|
let factory = ExpoReactNativeFactory(delegate: delegate)
|
|
delegate.dependencyProvider = RCTAppDependencyProvider()
|
|
|
|
reactNativeDelegate = delegate
|
|
reactNativeFactory = factory
|
|
bindReactNativeFactory(factory)
|
|
|
|
#if os(iOS) || os(tvOS)
|
|
window = UIWindow(frame: UIScreen.main.bounds)
|
|
factory.startReactNative(
|
|
withModuleName: "main",
|
|
in: window,
|
|
launchOptions: launchOptions)
|
|
#endif
|
|
|
|
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
|
|
}
|
|
|
|
// Linking API
|
|
public override func application(
|
|
_ app: UIApplication,
|
|
open url: URL,
|
|
options: [UIApplication.OpenURLOptionsKey: Any] = [:]
|
|
) -> Bool {
|
|
return super.application(app, open: url, options: options) || RCTLinkingManager.application(app, open: url, options: options)
|
|
}
|
|
|
|
// Universal Links
|
|
public override func application(
|
|
_ application: UIApplication,
|
|
continue userActivity: NSUserActivity,
|
|
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void
|
|
) -> Bool {
|
|
let result = RCTLinkingManager.application(application, continue: userActivity, restorationHandler: restorationHandler)
|
|
return super.application(application, continue: userActivity, restorationHandler: restorationHandler) || result
|
|
}
|
|
}
|
|
|
|
class ReactNativeDelegate: ExpoReactNativeFactoryDelegate {
|
|
// Extension point for config-plugins
|
|
|
|
override func sourceURL(for bridge: RCTBridge) -> URL? {
|
|
// needed to return the correct URL for expo-dev-client.
|
|
bridge.bundleURL ?? bundleURL()
|
|
}
|
|
|
|
override func bundleURL() -> URL? {
|
|
#if DEBUG
|
|
return RCTBundleURLProvider.sharedSettings().jsBundleURL(forBundleRoot: ".expo/.virtual-metro-entry")
|
|
#else
|
|
return Bundle.main.url(forResource: "main", withExtension: "jsbundle")
|
|
#endif
|
|
}
|
|
}
|