美文网首页universal links
iOS的Universal links及微信sdk中Univer

iOS的Universal links及微信sdk中Univer

作者: Dadada胖子 | 来源:发表于2020-05-29 14:30 被阅读0次

    关于Universal links的概念什么的,不用介绍了,网上一大堆的概念介绍,本文着重记录下Universal links的配置及微信sdk中Universal links的使用。

    Universal links的配置

    1. 登录开发者网站,找到需要配置的bundle id,如下图:


      1590724008062.jpg

    点击进入,配置该bundle id的Capabilities,如下图:


    1590724259636.jpg

    本页面需要的操作:

    • 记录Team ID
    • 将capabilities中的Associated Domains勾选,然后保存操作。重新下载对应的profile文件,并安装。
    1. 打开xcode,找到Signing&Capabilities,找到Associated Domains,如果找不到Associated Domains,点击左上角的Capbility添加即可。如下图:
      1590724761757.jpg
      Associated Domains中添加applinks:域名,示例如下:
      applinks:www.test.com
      关于此处的域名,稍后会做讲解。
      完成配置后,xcode会自动生成.entitlements文件。

    3.配置apple-app-site-association。创建一个纯文本文件,不带后缀名,命名为,内容如下:

    {
    "applinks": {
            "apps": [],
            "details": [
                {
                    "appID": "TeamID.Bundle Id",
                    "paths": ["*"]
                }
            ]
        }
    }
    

    注意:此处的appID的构成,TeamID就是上面记录的TeamID。
    文件创建完成后,将之上传至HTTPS服务器根目录或者.well-known这个子目录下。
    此处要确保:

    • 使用https://domain.com/apple-app-site-association或者https://domain.com/.well-known/apple-app-site-association能够访问到(能够下载或者返回文件内容即可)。这里的域名,就是2中配置xcode的Associated Domains时候提到的域名。
    • 也可以使用苹果的验证网站来验证文件是否能够被访问到。若应用未上线,可能出现如下结果:
      苹果验证网站的验证结果
    • 出现该结果,说明配置文件apple-app-site-association正确
    • 出现404错误,则说明apple-app-site-association文件未上传成功或者使用上面的域名不能访问到。

    至此,Universal links配置完毕。

    微信sdk中Universal links的使用

    写作本文时,用到的微信的openSDK版本是1.8.7.1,该版本强制使用Universal link。参照微信sdk介入指引即可完成介入。但是如果完全按照该指引操作,可能会出现分享的时候,进行二次跳转的异常,具体表现就是:拉起微信后进行授权,然后立刻返回App,然后再次调起微信,这是由于通用链接授权失败,第二次降级为URLScheme方式启动微信。
    如果保证了Universal links的配置正确,并且严格按照微信的接入文档执行操作,为什么通用链接授权还会失败呢?
    在微信的接入文档中,第二步操作如下图:

    微信接入文档第二步
    如红字部分所示,“建议Universal links配置path……”。当时,操作到这里的时候,又返回去修改apple-app-site-association文件,配置了path,但是在微信后台中配置的Universal links并没有配置path,App中调用微信openSDK的+(BOOL)registerApp:(NSString *)appid universalLink:(NSString *)universalLink方法的时候也没有带path,这就导致了微信sdk中Universal links校验不通过。
    解决方式
    在微信公众平台注册的通用链接要带路径,App中调用微信openSDK的+(BOOL)registerApp:(NSString *)appid universalLink:(NSString *)universalLink方法的通用链接参数也一定要带路径,保持一致,单纯的域名就会导致二次降级启动。
    正确配置后,从微信返回的通用链接形式是:
    https://域名/路径/微信平台的AppID

    相关文章

      网友评论

        本文标题:iOS的Universal links及微信sdk中Univer

        本文链接:https://www.haomeiwen.com/subject/ytjxzhtx.html