[iOS] fix deeplink related errors

https://jira.mail.ru/browse/MAPSME-10480
https://jira.mail.ru/browse/MAPSME-10503
This commit is contained in:
Aleksey Belouosv 2019-05-14 17:59:58 +03:00 committed by Daria Volvenkova
parent 92b26bb017
commit eb50c5fbfb
4 changed files with 15 additions and 17 deletions

View file

@ -33,12 +33,9 @@ fileprivate enum DeeplinkType {
isLaunchedByDeeplink = true
deeplinkURL = launchDeeplink
}
NSLog("deeplink: applicationDidFinishLaunching \(deeplinkURL?.absoluteString ?? "nil")")
}
func applicationDidOpenUrl(_ url: URL) -> Bool {
NSLog("deeplink: applicationDidOpenUrl \(url)")
guard let dlType = deeplinkType(url) else { return false }
deeplinkType = dlType
deeplinkURL = url
@ -62,7 +59,6 @@ fileprivate enum DeeplinkType {
}
func applicationDidReceiveUniversalLink(_ url: URL) -> Bool {
NSLog("deeplink: applicationDidReceiveUniversalLink \(url)")
var result = false
if let host = url.host, host == "mapsme.onelink.me" {
URLComponents(url: url, resolvingAgainstBaseURL: false)?.queryItems?.forEach {
@ -85,6 +81,11 @@ fileprivate enum DeeplinkType {
}
}
func handleDeeplink(_ url: URL) {
deeplinkURL = url
handleInternal()
}
func reset() {
isLaunchedByDeeplink = false
canHandleLink = false
@ -114,7 +115,6 @@ fileprivate enum DeeplinkType {
assertionFailure()
return
}
NSLog("deeplink: handle deeplink \(url)")
switch deeplinkType {
case .geo:
DeepLinkHelper.handleGeoUrl(url)

View file

@ -426,18 +426,15 @@ using namespace osm_auth_ios;
- (BOOL)application:(UIApplication *)application
continueUserActivity:(NSUserActivity *)userActivity
restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
if ([userActivity.activityType isEqualToString:CSSearchableItemActionType])
{
if ([userActivity.activityType isEqualToString:CSSearchableItemActionType]) {
NSString * searchStringKey = userActivity.userInfo[CSSearchableItemActivityIdentifier];
NSString * searchString = L(searchStringKey);
if (searchString)
{
if (searchString) {
[self searchText:searchString];
return YES;
}
}
else if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb])
{
} else if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb] &&
userActivity.webpageURL != nil) {
return [DeepLinkHandler.shared applicationDidReceiveUniversalLink:userActivity.webpageURL];
}
@ -802,7 +799,7 @@ continueUserActivity:(NSUserActivity *)userActivity
-(void)onConversionDataReceived:(NSDictionary*) installData {
if ([installData[@"is_first_launch"] boolValue]) {
NSString *deeplink = installData[@"af_r"];
NSString *deeplink = installData[@"af_dp"];
NSURL *deeplinkUrl = [NSURL URLWithString:deeplink];
if (deeplinkUrl != nil) {
dispatch_async(dispatch_get_main_queue(), ^{

View file

@ -1,5 +1,5 @@
protocol DeeplinkInfoViewControllerDelegate: AnyObject {
func deeplinkInfoViewControllerDidFinish(_ viewController: DeeplinkInfoViewController)
func deeplinkInfoViewControllerDidFinish(_ viewController: DeeplinkInfoViewController, deeplink: URL?)
}
class DeeplinkInfoViewController: UIViewController {
@ -32,7 +32,7 @@ class DeeplinkInfoViewController: UIViewController {
}
@IBAction func onNextButton(_ sender: UIButton) {
delegate?.deeplinkInfoViewControllerDidFinish(self)
delegate?.deeplinkInfoViewControllerDidFinish(self, deeplink: deeplinkURL)
guard let dlUrl = deeplinkURL, let host = dlUrl.host else { return }
Statistics.logEvent(kStatOnboardingDlAccept, withParameters: [kStatType : host])
}

View file

@ -176,8 +176,9 @@ extension WelcomePageController: WelcomeViewControllerDelegate {
}
extension WelcomePageController: DeeplinkInfoViewControllerDelegate {
func deeplinkInfoViewControllerDidFinish(_ viewController: DeeplinkInfoViewController) {
func deeplinkInfoViewControllerDidFinish(_ viewController: DeeplinkInfoViewController, deeplink: URL?) {
close()
DeepLinkHandler.shared.handleDeeplink()
guard let dl = deeplink else { return }
DeepLinkHandler.shared.handleDeeplink(dl)
}
}