misc: Fix SDL_OpenURL on newer iOS releases.

Apparently as of iOS 18.2, the deprecated API we were using just refuses to
work at all.

Fixes #11728.

(cherry picked from commit ffed1c50c0)
This commit is contained in:
Ryan C. Gordon
2024-12-26 11:40:30 -05:00
parent ddfdb0ca7b
commit c6e1806ba9

View File

@@ -29,7 +29,15 @@ int SDL_SYS_OpenURL(const char *url)
NSString *nsstr = [NSString stringWithUTF8String:url];
NSURL *nsurl = [NSURL URLWithString:nsstr];
return [[UIApplication sharedApplication] openURL:nsurl] ? 0 : -1;
if (![[UIApplication sharedApplication] canOpenURL:nsurl]) {
return SDL_SetError("No handler registerd for this type of URL");
}
if (@available(iOS 10.0, *)) {
[[UIApplication sharedApplication] openURL:nsurl options:@{} completionHandler:^(BOOL success) {}];
} else {
[[UIApplication sharedApplication] openURL:nsurl];
}
return 0;
}
}