Я хотел бы обработать пользовательскую схему URL в моем приложении-реактиве. Таким образом, я сначала добавил eventListener в мой JS-код внутри моего корневого компонента, например:
componentDidMount() {
Linking.addEventListener('url', this.handleOpenURL);
}
componentWillUnmount() {
Linking.removeEventListener('url', this.handleOpenURL);
}
handleOpenURL = event => {
console.log('event', event);
};
В своем приложении XCode я добавил собственную схему URL "com.myScheme".
Моя проблема возникла, когда я попытался добавить функцию в свой AppDelegate.swift для обработки глубоких ссылок.
Вот моя функция:
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {
print(url)
return true
}
Похоже, что true возврата недостаточно для запуска моего слушателя внутри моего приложения ...
Я знаю, что в документации по реакционной натуре есть метод Objective-C:
#import <React/RCTLinkingManager.h>
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
return [RCTLinkingManager application:application openURL:url options:options];
}
Но я бы хотел иметь дело только со Свифтом для моего проекта, чтобы улучшить свои навыки в этом языке. Проблема в том, что я не могу найти ни одного примера этой функции, реализованной с помощью Swift.
Вот почему я прошу помощи в реализации этого метода, а затем инициирую мое событие внутри моего приложения RN.
Спасибо за понимание:)