diff --git a/iphone/Maps/Classes/MapViewController.mm b/iphone/Maps/Classes/MapViewController.mm index eeb70454c4..e329471e91 100644 --- a/iphone/Maps/Classes/MapViewController.mm +++ b/iphone/Maps/Classes/MapViewController.mm @@ -832,4 +832,30 @@ NSString *const kPP2BookmarkEditingSegue = @"PP2BookmarkEditing"; [[MWMAlertViewController activeAlertController] presentInfoAlert:L(@"load_kmz_title") text:L(@"load_kmz_failed")]; } +- (BOOL)canBecomeFirstResponder { + return YES; +} + +- (NSArray *)keyCommands { + return @[[UIKeyCommand keyCommandWithInput:UIKeyInputDownArrow modifierFlags:0 action:@selector(zoomOut) discoverabilityTitle:@"Zoom Out"], + [UIKeyCommand keyCommandWithInput:UIKeyInputUpArrow modifierFlags:0 action:@selector(zoomIn) discoverabilityTitle:@"Zoom In"], + [UIKeyCommand keyCommandWithInput:UIKeyInputEscape modifierFlags:0 action:@selector(goBack) discoverabilityTitle:@"Go Back"]]; +} + +- (void)zoomOut { + GetFramework().Scale(Framework::SCALE_MIN, true); +} + +- (void)zoomIn { + GetFramework().Scale(Framework::SCALE_MAG, true); +} + +- (void)goBack { + NSString *backURL = [DeepLinkHandler.shared getBackUrl]; + BOOL canOpenURL = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:backURL]]; + if (canOpenURL){ + [[UIApplication sharedApplication] openURL:[NSURL URLWithString:backURL] options:@{} completionHandler:nil]; + } +} + @end diff --git a/iphone/Maps/Core/DeepLink/DeepLinkHandler.swift b/iphone/Maps/Core/DeepLink/DeepLinkHandler.swift index 048318fd9d..512c08b909 100644 --- a/iphone/Maps/Core/DeepLink/DeepLinkHandler.swift +++ b/iphone/Maps/Core/DeepLink/DeepLinkHandler.swift @@ -106,6 +106,12 @@ class DeepLinkURL { deeplinkURL = nil } + func getBackUrl() -> String { + guard let urlString = deeplinkURL?.url.absoluteString else { return "" } + guard let url = URLComponents(string: urlString) else { return "" } + return (url.queryItems?.first(where: { $0.name == "backurl" })?.value ?? "") + } + private func convertUniversalLink(_ universalLink: URL) -> URL { let convertedLink = String(format: "mapsme:/%@?%@", universalLink.path, universalLink.query ?? "") return URL(string: convertedLink)! diff --git a/iphone/Maps/MAPSME.plist b/iphone/Maps/MAPSME.plist index e89041aaee..c0ab11fbc4 100644 --- a/iphone/Maps/MAPSME.plist +++ b/iphone/Maps/MAPSME.plist @@ -116,6 +116,7 @@ maximzakaz vzt mytaxi + wunderlinq LSRequiresIPhoneOS