解决cocos 2dx/creator2.4在ios18下openURL无法调用的问题

由于ios18废弃了旧的openURL接口,我们需要修改CCApplication-ios.mm文件的Application::openURL方法:

objectivec 复制代码
//修复openURL在ios18下无法调用的问题
bool Application::openURL(const std::string &url)
{
    // NSString* msg = [NSString stringWithCString:url.c_str() encoding:NSUTF8StringEncoding];
    // NSURL* nsUrl = [NSURL URLWithString:msg];
    // return [[UIApplication sharedApplication] openURL:nsUrl];

    @autoreleasepool {
        NSURL *nsUrl = [NSURL URLWithString:[NSString stringWithUTF8String:url.c_str()]];
        
        // 检查是否为 HTTP/HTTPS URL
        if ([[nsUrl scheme] isEqualToString:@"http"] || [[nsUrl scheme] isEqualToString:@"https"]) {
            if (@available(iOS 14.5, *)) {
                NSDictionary *options = @{UIApplicationOpenExternalURLOptionsEventAttributionKey : @YES};

                [[UIApplication sharedApplication] openURL:nsUrl options:options completionHandler:^(BOOL success) {
                    if (success) {
                        // URL成功打开
                    } else {
                        // URL打开失败
                    }
                }];

                return YES;
            }
        }
        
        // 其他情况使用旧方法
        if (@available(iOS 10.0, *)) {
            [[UIApplication sharedApplication] openURL:nsUrl options:@{} completionHandler:nil];
        } else {
            [[UIApplication sharedApplication] openURL:nsUrl];
        }
        return YES;
    }
    return NO;
}
相关推荐
00后程序员张8 小时前
Windows 下怎么生成 AppStoreInfo.plist?不依赖 Xcode 的方法
ide·macos·ios·小程序·uni-app·iphone·xcode
boldiy10 小时前
如何在MAC电脑中实现自动切换windows快捷键
windows·macos
张3蜂11 小时前
Flutter macOS 安装文档
flutter·macos
Nan-h111 小时前
Mac 剪贴板工具选型:先看工作流,再看 Maccy、Raycast、Paste 和 uPaste
macos·贴图
Rabbit_QL11 小时前
【find的用法】macOS/Linux 下高效查找文件
linux·macos
天天开发11 小时前
Flutter开发者该掌握的iOS隐私审核政策
flutter·ios·cocoa
2501_915106321 天前
深入解析无源码iOS加固原理与方案,保护应用安全
android·安全·ios·小程序·uni-app·cocoa·iphone
大熊猫侯佩1 天前
升级到 macOS26.5 后看视频会自动息屏的解决
macos·操作系统
磊 子1 天前
C++ IO 流
macos·objective-c·cocoa
库奇噜啦呼1 天前
【iOS】源码学习-dyld加载
学习·ios·cocoa