forked from organicmaps/organicmaps
[iOS] fix deeplink related errors
https://jira.mail.ru/browse/MAPSME-10480 https://jira.mail.ru/browse/MAPSME-10503
This commit is contained in:
parent
92b26bb017
commit
eb50c5fbfb
4 changed files with 15 additions and 17 deletions
|
@ -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)
|
||||
|
|
|
@ -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(), ^{
|
||||
|
|
|
@ -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])
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue