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

Objective-C应用中YouTube嵌入视频需实现标题跳转至YouTube的问题

解决YouTube嵌入视频标题可点击跳转的问题

一、调整嵌入URL参数

YouTube嵌入链接默认会显示视频标题,但可以通过参数明确确保标题区域可交互。修改你的URL拼接代码,添加必要参数:

NSString *embedURLString = [NSString stringWithFormat:@"https://www.youtube.com/embed/%@?modestbranding=0&controls=1", rowViewModel.videoId];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:embedURLString]];
  • modestbranding=0:保留YouTube品牌元素(含标题栏),明确设置可避免意外隐藏标题
  • controls=1:启用视频控制栏,保障标题区域的交互性

二、配置WKWebView导航代理处理跳转

默认情况下WKWebView会拦截外部跳转请求,需实现WKNavigationDelegate处理标题点击后的跳转逻辑:

  1. 为webView设置代理:
webView.navigationDelegate = self;
  1. 实现代理方法处理跳转:
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
    NSURL *requestURL = navigationAction.request.URL;
    // 判断是否为YouTube主站跳转请求(标题点击会触发此类请求)
    if ([requestURL.host containsString:@"youtube.com"] && ![requestURL.absoluteString containsString:@"/embed/"]) {
        // 调用系统应用打开跳转链接
        if ([[UIApplication sharedApplication] canOpenURL:requestURL]) {
            [[UIApplication sharedApplication] openURL:requestURL options:@{} completionHandler:nil];
            // 阻止WebView内部跳转
            decisionHandler(WKNavigationActionPolicyCancel);
            return;
        }
    }
    // 允许视频内部的正常跳转
    decisionHandler(WKNavigationActionPolicyAllow);
}
  1. 在ViewController头文件声明遵循协议:
@interface YourViewController : UIViewController <WKNavigationDelegate>

三、验证效果

修改后重新运行应用,嵌入视频的标题会变为可点击状态,点击后将跳转至系统默认浏览器或YouTube应用,符合YouTube的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 11:21:14