TouchableOpacity跳转YouTube关联TMDB API视频key失效解决方案
问题根源
你代码里的核心错误是字符串包裹符号用错了:ES6模板字符串的${变量}插值语法,必须用反引号(即键盘Tab键上方、和~同键的`符号)包裹整个字符串才能生效。你当前用单引号包裹URL,`${details.key}`会被当成普通文本,不会替换成实际的视频key,最终拼接出的URL是无效的,自然无法正常跳转。
修复后的可用代码
<TouchableOpacity onPress={() => { // 注意URL整体用反引号包裹,不要用单/双引号 const trailerUrl = `https://www.youtube.com/watch?v=${details.key}`; Linking.openURL(trailerUrl).catch(err => { console.error('预告片跳转失败', err); // 可在此处添加弹窗/Toast提示用户无法打开链接 }); }} > {/* 此处放你的按钮UI元素,比如播放图标、"观看预告片"文本 */} </TouchableOpacity>
排查补充项
如果改完符号还是无法跳转,按以下点逐一校验:
- 跳转前打印
details.key的值,确认TMDB接口返回的key字段已经正常拿到,不存在undefined、null或者空值的情况。 - iOS端需要在项目的
Info.plist文件中配置LSApplicationQueriesSchemes白名单,添加youtube字段,否则系统会拦截跳转到YouTube的请求。 - 安卓端确认
AndroidManifest.xml中已经声明了网络权限<uses-permission android:name="android.permission.INTERNET" />。
内容的提问来源于stack exchange,提问作者Ziad
相关产品推荐
相关产品推荐

