如何阻止点击网站链接时自动唤起React Native应用
你注释RN侧Linking相关代码不生效的核心原因是:App唤起逻辑是由iOS/Android系统的原生配置控制的,和RN运行时的Linking模块调用没有直接关联,需要修改两端原生配置才能实现需求,具体方案如下:
iOS端操作步骤
- 打开Xcode项目下的
Info.plist文件,找到CFBundleURLTypes配置项,删除或注释你方Web域名对应的URL Scheme配置 - 如果你配置了Universal Link关联域名,打开项目的
.entitlements文件,删除com.apple.developer.associated-domains字段下你方Web域名对应的条目 - 注意:已经安装过旧版本App的用户,系统已经缓存了域名和App的关联关系,需要卸载重装App才能让新配置生效
Android端操作步骤
- 打开Android项目下的
AndroidManifest.xml文件,找到主Activity下配置了你方Web域名的<intent-filter>标签,直接删除或注释整个标签段 - 如果你开启了App Link的
autoVerify自动验证配置,同步删除对应的属性配置 - 同iOS逻辑,旧版本安装用户需要卸载重装才能清除系统缓存的关联规则
紧急临时方案(无需发版App)
如果当前来不及发布新版本修改原生配置,可以直接修改Web端代码实现效果:
// 在Web应用的入口逻辑处添加判断 const isAppOpen = navigator.userAgent.includes('你的RN应用自定义UA标识') if (isAppOpen) { // 安卓端强制跳转系统浏览器打开 const targetUrl = window.location.href window.location.href = `intent://${targetUrl.replace('https://', '').replace('http://', '')}#Intent;scheme=https;package=你的应用包名;end` // iOS端可以直接调用window.open强制跳转Safari // window.open(window.location.href, '_blank') // 跳转后主动关闭当前RN页面即可 }
该方案直接上线Web端代码即可生效,不需要修改App端内容。
内容的提问来源于stack exchange,提问作者user2785172
相关产品推荐
相关产品推荐

