В моем приложении я хотел бы использовать карты Google для целей навигации.Поэтому я использовал схему URL Google для достижения того же.После завершения навигации мне нужно возобновить работу приложения, поэтому я использовал опцию «comgooglemaps-x-callback: //».Я использую следующие коды
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"comgooglemaps-x-callback://"]])
{
NSString* appName = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"];
NSString *string = [NSString stringWithFormat:@"comgooglemaps-x-callback://?saddr=%f,%f&daddr=%f,%f&directionsmode=driving&x-success=myapp://?resume=true&x-source=%@",sourceCoords.latitude,sourceCoords.longitude, destCoords.latitude, destCoords.longitude,appName];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:string] options:@{} completionHandler:^(BOOL success)
{
if (success)
{
NSLog(@"Opened");
ApplicationDelegate.isDirectedToGoogleMaps = YES;
}
}];
}
Здесь «myapp» - это схема URL моего приложения.Проверьте, правильно ли я ввел схему URL Google.Когда я зарегистрировался в документации Google по этому поводу, они сказали, что параметры для "comgooglemaps-x-callback: //" такие же, как и для "comgooglemaps", ожидают два дополнительных параметра
[NSURL URLWithString:string]
Приведенный выше код всегдадает нулевое значение и не направляется на карты Google.
Проблема возникает только при использовании URL-адреса обратного вызова ("comgooglemaps-x-callback: //").Когда я использую Google URL без параметров обратного вызова, я могу запускать карты Google.Но в моем случае я хочу использовать опцию обратного вызова, чтобы я мог перенаправить пользователей обратно в исходное приложение.