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

React Native调用canOpenURL需在plist、manifest加http/https吗?

结论

不需要在plist文件和AndroidManifest文件中额外添加http、https相关的查询配置。


平台规则细节

iOS端

  • LSApplicationQueriesSchemes配置仅对第三方App注册的自定义URL Scheme生效,作用是提前向系统声明你需要查询哪些非通用协议的唤起能力。
  • http://、https://是系统级默认支持的Web通用协议,从iOS 9推出Scheme查询权限限制开始就被纳入默认白名单豁免范围,无论你是否手动在plist中声明,调用canOpenURL检测这两类协议都不会被拦截,可正常返回结果。
  • 只有当你需要检测第三方App的专属自定义Scheme(比如支付、社交类App的专属唤起协议)时,才必须把对应Scheme字符串添加到LSApplicationQueriesSchemes列表中,否则系统会直接返回false,同时在控制台输出权限拦截日志。

Android端

  • Android 11及以上版本的包可见性限制逻辑和iOS一致:AndroidManifest.xml中<queries>节点的配置仅对非通用协议生效。
  • http、https属于系统默认支持的通用Intent协议,天然在查询白名单内,不需要额外声明就能通过canOpenURL正常检测。
  • 只有检测其他App自定义的非通用唤起协议时,才需要在manifest的查询配置中添加对应项,否则系统会直接返回无法打开的结果。

补充说明

执行canOpenURL('https://stackoverflow.com/')无异常是符合平台规则的正常表现,本质是通用Web协议不受自定义Scheme查询权限的限制。

注意:如果需要实现点击http/https链接直接唤起指定第三方App、而非打开系统默认浏览器的效果,需要额外配置iOS通用链接(Universal Link)、Android应用链接(App Link)相关规则,这类配置和canOpenURL检测所需的Scheme查询配置不属于同一类设置,不要混淆。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 06:51:37