forked from organicmaps/organicmaps
[iOS] handle universal links
This commit is contained in:
parent
586cc1d769
commit
83e2453793
2 changed files with 35 additions and 18 deletions
|
@ -295,6 +295,24 @@ using namespace osm_auth_ios;
|
|||
m_fileURL = nil;
|
||||
}
|
||||
|
||||
- (NSURL *)convertUniversalLink:(NSURL *)universalLink
|
||||
{
|
||||
auto deeplink = [NSString stringWithFormat:@"mapsme://%@?%@", universalLink.path, universalLink.query];
|
||||
return [NSURL URLWithString:deeplink];
|
||||
}
|
||||
|
||||
- (void)searchText:(NSString *)searchString
|
||||
{
|
||||
if (!self.isDrapeEngineCreated)
|
||||
{
|
||||
dispatch_async(dispatch_get_main_queue(), ^{ [self searchText:searchString]; });
|
||||
return;
|
||||
}
|
||||
|
||||
[[MWMMapViewControlsManager manager] searchText:[searchString stringByAppendingString:@" "]
|
||||
forInputLocale:[MWMSettings spotlightLocaleLanguageId]];
|
||||
}
|
||||
|
||||
- (void)incrementSessionsCountAndCheckForAlert
|
||||
{
|
||||
[self incrementSessionCount];
|
||||
|
@ -536,28 +554,27 @@ using namespace osm_auth_ios;
|
|||
continueUserActivity:(NSUserActivity *)userActivity
|
||||
restorationHandler:(void (^)(NSArray * restorableObjects))restorationHandler
|
||||
{
|
||||
if (![userActivity.activityType isEqualToString:CSSearchableItemActionType])
|
||||
return NO;
|
||||
NSString * searchStringKey = userActivity.userInfo[CSSearchableItemActivityIdentifier];
|
||||
NSString * searchString = L(searchStringKey);
|
||||
if (!searchString)
|
||||
return NO;
|
||||
|
||||
if (!self.isDrapeEngineCreated)
|
||||
if ([userActivity.activityType isEqualToString:CSSearchableItemActionType])
|
||||
{
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[self application:application
|
||||
continueUserActivity:userActivity
|
||||
restorationHandler:restorationHandler];
|
||||
});
|
||||
NSString * searchStringKey = userActivity.userInfo[CSSearchableItemActivityIdentifier];
|
||||
NSString * searchString = L(searchStringKey);
|
||||
if (searchString)
|
||||
{
|
||||
[self searchText:searchString];
|
||||
return YES;
|
||||
}
|
||||
}
|
||||
else
|
||||
else if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb])
|
||||
{
|
||||
[[MWMMapViewControlsManager manager] searchText:[searchString stringByAppendingString:@" "]
|
||||
forInputLocale:[MWMSettings spotlightLocaleLanguageId]];
|
||||
auto link = userActivity.webpageURL;
|
||||
if ([self checkLaunchURL:[self convertUniversalLink:link]])
|
||||
{
|
||||
[self handleURLs];
|
||||
return YES;
|
||||
}
|
||||
}
|
||||
|
||||
return YES;
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (BOOL)initStatistics:(UIApplication *)application
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<key>com.apple.developer.associated-domains</key>
|
||||
<array>
|
||||
<string>applinks:mapsme.onelink.me</string>
|
||||
<string>applinks:dlinks.maps.me</string>
|
||||
<string>applinks:dlink.maps.me</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
Loading…
Add table
Reference in a new issue