You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android movFilePlay视频播放Java逻辑转Objective-C代码求助

问题背景
  • 故障表现:iOS端App打开对应业务页面时,视频无法正常播放
  • 排查结果:项目内StandardPlug.m文件缺失movFilePlay服务对应的实现逻辑
  • 处理需求:将已有的Android端Java功能实现转换为Objective-C代码,补入项目指定位置
参考Android端Java源码
else if(mServiceId.equals("movFilePlay"))  {    //hband 이상연대표 요청 220415
    String filePath = mParamData.getString( "filePath" );
    Intent intent = new Intent( Intent.ACTION_VIEW );
    intent.setData( Uri.parse( filePath ) );
    startActivity( intent );
    break;
}
转换后Objective-C实现代码

代码逻辑完全对齐Android端实现,同时适配iOS系统URL规则,避免本地路径打开失败问题:

else if ([mServiceId isEqualToString:@"movFilePlay"]) { // hband需求 220415
    // 从参数字典中获取视频路径
    NSString *filePath = mParamData[@"filePath"];
    NSURL *targetURL = nil;
    // 区分网络路径/本地路径,生成符合系统要求的URL格式
    if ([filePath hasPrefix:@"http://"] || [filePath hasPrefix:@"https://"]) {
        targetURL = [NSURL URLWithString:filePath];
    } else {
        targetURL = [NSURL fileURLWithPath:filePath];
    }
    // 调用系统默认能力打开视频,对齐Android端ACTION_VIEW逻辑
    if ([[UIApplication sharedApplication] canOpenURL:targetURL]) {
        [[UIApplication sharedApplication] openURL:targetURL options:@{} completionHandler:nil];
    }
    break;
}
接入注意事项
  • 将上述代码添加到StandardPlug.m文件中服务ID分支判断的对应位置,和其他服务的判断分支保持同级即可
  • 若路径包含中文或特殊字符,需要先对filePath做百分号编码处理,避免URL生成失败
  • 若后续需要改为应用内播放器播放,只需替换上述代码中调用系统打开URL的部分,将targetURL传入自定义播放器组件即可

内容的提问来源于stack exchange,提问作者STARK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 06:54:31