diff --git a/MVMCore/MVMCore/ActionHandling/ActionOpenUrlHandler.swift b/MVMCore/MVMCore/ActionHandling/ActionOpenUrlHandler.swift index e3838a8..a69c920 100644 --- a/MVMCore/MVMCore/ActionHandling/ActionOpenUrlHandler.swift +++ b/MVMCore/MVMCore/ActionHandling/ActionOpenUrlHandler.swift @@ -18,9 +18,14 @@ open class ActionOpenUrlHandler: ModelHandler { return } UIApplication.shared.open(appURL, options: model.appURLOptions?.options ?? [:]) { loaded in - guard !loaded else { return } - MVMCoreLoggingHandler.shared()?.handleDebugMessage("Failed to open app url: \(appURL)") - openURL(model: model, additionalData: additionalData, delegateObject: delegateObject) + if loaded { + self.handler?(.success(())) + } else { + let message = "Failed to open app url: \(appURL)" + self.handler?(.failure(ModelRegistry.Error.other(message: message))) + MVMCoreLoggingHandler.shared()?.handleDebugMessage(message) + openURL(model: model, additionalData: additionalData, delegateObject: delegateObject) + } } }) } @@ -29,7 +34,13 @@ open class ActionOpenUrlHandler: ModelHandler { open func openURL(model: ActionOpenUrlModel, additionalData: [AnyHashable : Any]?, delegateObject: DelegateObject?) { UIApplication.shared.open(model.browserUrl, options: [:]) { [self] loaded in guard !loaded else { return } - handleError(model: model, additionalData: additionalData, delegateObject: delegateObject) + if loaded { + self.handler?(.success(())) + } else { + let message = "Failed to open app url: \(model.browserUrl)" + self.handler?(.failure(ModelRegistry.Error.other(message: message))) + handleError(model: model, additionalData: additionalData, delegateObject: delegateObject) + } } }