misc: Make SDL_OpenURL work with VisionOS, tvOS, etc.

This commit is contained in:
Ryan C. Gordon
2024-12-26 14:03:27 -05:00
committed by Sam Lantinga
parent ffed1c50c0
commit 7bbe6025be

View File

@@ -29,22 +29,19 @@
bool SDL_SYS_OpenURL(const char *url)
{
@autoreleasepool {
#ifdef SDL_PLATFORM_VISIONOS
return SDL_Unsupported(); // openURL is not supported on visionOS
#else
NSString *nsstr = [NSString stringWithUTF8String:url];
NSURL *nsurl = [NSURL URLWithString:nsstr];
if (![[UIApplication sharedApplication] canOpenURL:nsurl]) {
return SDL_SetError("No handler registerd for this type of URL");
}
if (@available(iOS 10.0, *)) {
if (@available(iOS 10.0, tvOS 10.0, *)) {
[[UIApplication sharedApplication] openURL:nsurl options:@{} completionHandler:^(BOOL success) {}];
} else {
#ifndef SDL_PLATFORM_VISIONOS // Fallback is never available in any version of VisionOS (but correct API always is).
[[UIApplication sharedApplication] openURL:nsurl];
#endif
}
return true;
#endif
}
}