解决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;
}
相关推荐
心灵宝贝17 分钟前
Mac版PDF Squeezer v4.5.1安装教程(DMG文件下载+详细步骤)
macos
2501_915921434 小时前
iOS 应用代上架流程,多工具组合与使用 开心上架 跨平台自动化上传指南
android·ios·小程序·uni-app·自动化·cocoa·iphone
前端架构师-老李7 小时前
Java开发—JDK的安装和版本管理(macOS)
java·开发语言·macos
Digitally7 小时前
如何将 Android 联系人备份到 Mac 的 4 种简单
android·macos
一勺菠萝丶8 小时前
在 macOS 上用 Docker 为 Java 后端 & 常见开发需求搭建完整服务(详尽教程)
java·macos·docker
猿小猴子21 小时前
在 MacOS Tahoe 上使用VMware虚拟机安装 ARM版 Windows11
macos·vmware·win11 for arm
feiyangqingyun1 天前
Qt项目作品在苹果macos上编译运行效果/视频监控系统/物联网平台等
开发语言·qt·macos
彩旗工作室1 天前
将iOS/macOS应用上架至App Store
macos·ios·应用商店·appstore
新***袭1 天前
如何在 Mac 上恢复已删除的文件(包括清空了垃圾箱方法)
macos
江东小bug王1 天前
深入解析 iOS 与 macOS 应用程序生命周期(完整指南)
macos·ios