Метод .initialise() моего SDK имеет параметр делегата для успеха и неудачи.Хотя я постарался преобразовать все свои общедоступные классы и модели в @objc для совместимости, в React Native нет логики делегирования, поэтому я борюсь с альтернативами.
1st Вариант: изменить логику на обратные вызовы и в случаях, когда необходимо запускать асинхронно, полагаться на NSNotifications? Не уверен в этом подходе.
Код: Выделить всё
@objc(MySDKBridge)
class MySDKBridge: NSObject {
@objc func initialise() {
let myDelegate = InitialiseDelegate()
MySDK.shared.initialise(delegate: myDelegate)
}
}
extension MySDKBridge: InitialiseDelegate {
func sendEventToReactNative(name: String, body: [String: Any]) {
if let bridge = self.bridge {
bridge.eventDispatcher().sendAppEvent(withName: name, body: body)
}
}
func initialiseCompleted() {
sendEventToReactNative(name: "InitialisationCompleted", body: ["status": "success"])
}
func initialiseFailed(message: String) {
sendEventToReactNative(name: "InitialisationFailed", body: ["status": "failure", "message": message])
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... act-native
Мобильная версия