uniapp中iOS白名单对URL Scheme的作用是什么

在uniapp开发中,iOS的白名单配置对URL Scheme的具体作用是什么?是否需要为每个自定义的URL Scheme单独配置白名单?如果没正确配置会导致哪些功能异常?白名单的格式要求是怎样的,能否举例说明?

2 回复

iOS白名单用于允许应用通过URL Scheme调用其他应用。在uniapp中,配置白名单后,iOS系统才会允许应用跳转到指定应用,否则会被系统拦截。


在UniApp中,iOS白名单对URL Scheme的作用是允许应用通过预定义的URL Scheme与其他应用或系统功能进行安全通信。具体作用如下:

  1. 权限控制:iOS要求应用在访问其他应用的URL Scheme前,必须在Info.plist中声明目标Scheme的白名单(通过LSApplicationQueriesSchemes数组)。未列出的Scheme将无法被调用,防止恶意应用随意探测或跳转。

  2. 功能调用:通过白名单注册的URL Scheme,UniApp应用可以使用uni.navigateToMiniProgram()window.location.href等方式跳转到其他应用(如微信、支付宝),或调用系统功能(如拨号、邮件)。

示例代码(在UniApp项目的manifest.json中配置):

{
  "app-plus": {
    "distribute": {
      "ios": {
        "urlschemewhitelist": ["weixin", "alipay", "tel"] // 声明微信、支付宝、拨号的白名单
      }
    }
  }
}

注意事项

  • 白名单仅声明可跳转的目标,不涉及自身应用的URL Scheme暴露。
  • 配置后需重新打包生效,真机调试时可能需手动修改Xcode工程中的Info.plist

通过白名单机制,iOS确保了应用间交互的安全性,避免未授权的Scheme调用。

回到顶部