uniapp - 配置iOS的Universal Links

419 阅读2分钟

一、Universal Links

开发过iOS的对UL都不陌生,定义可以看下这里

简单解释一下,iOS在访问https://xxx.com时,会同时访问https://xxx.com/apple-app-site-association

如果apple-app-site-association路径下是一个文件且该文件内容符合UL的配置规则,就会直接唤起配置中的iOS App

如果唤起失败,则会直接访问https://xxx.com

二、你需要一个可以访问的域名

UL就是一个正常的URL,所以需要有一个可以访问的域名,最好就是用App的官网链接

三、apple-app-site-association 文件

一个基础的apple-app-site-association文件如下,主要看appIDpaths配置

  • appID:是一个组合字符串,通过.连接App的team idbundle id
  • paths: 配置的路径,如果被访问时会去触发UL。如下面的配置,访问https//xxx.com/open/就会触发UL
{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "TeamID.bundleID",
         "paths": [
          "/open/*",
        ]
      }
    ]
  }
}

这个文件不能加后缀,且需要放到域名服务器上,存放的路径有两个

  1. 放到域名服务器的根目录,确保 https://xxx.com/apple-app-site-association 能访问到文件
  2. 放到域名服务器的.well-known目录下,确保https://xxx.com/.well-known/apple-app-site-association能访问到文件

配置完后,访问/open/*链接的路径都是

四、配置manifest.json文件

SharePaymentOAuth三个模块有用到UL

对于微信,直接配置https://xxx.com/open/即可,在微信申请对于权限时填写的UL也是这个即可

对于QQ,QQ有自己的一套规则,在apple-app-site-associationpaths添加对应的路径即可

五、配置成功验证

最简单的验证方法:在配置好manifest.json,打包上架AppStore后。直接把Universal Links用草料生成二维码,用ios的相机去扫这个二维码

  1. 如果已经安装了,扫二维码的时候,会提示打开XXX软件
  2. 如果没有安装,扫二维码的时候,会直接显示访问链接,打开后就是访问Universal Links