解决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;
}
相关推荐
白玉cfc16 分钟前
【iOS】折叠cell
ios·objective-c
他们都不看好你,偏偏你最不争气18 分钟前
【iOS】MVC架构
前端·ios·mvc·objective-c·面向对象
小玉起起12 小时前
RocksDB 在 macOS M 系列 上运行时报错的解决方案
macos·kafka·kafka stream
咕噜签名分发冰淇淋14 小时前
苹果ipa应用安装包ios系统闪退问题
macos·ios·cocoa
xhbh66617 小时前
MySQL服务启动命令手册(Linux+Windows+macOS)(下)
数据库·mysql·macos·mysql启动命令·mysql 启动
是店小二呀17 小时前
Linux | 走进网络世界:MAC、IP 与通信的那些事
linux·网络·macos
闲人一小枚20 小时前
mac Monterey 安装svn(已解决)
macos·svn
小山菌21 小时前
mac中进行适用于IOS的静态库构建
macos·ios·cocoa
goodmao1 天前
【macOS】垃圾箱中文件无法清理的常规方法
macos
~央千澈~1 天前
Objective-C 的坚毅与传承:在Swift时代下的不可替代性优雅草卓伊凡
开发语言·ios·objective-c