iOS Universal link

app 使用微信登录 需要适配 Universal link

步骤一:

让后台准备一个 apple-app-site-association 文件 放在网站的根目录下 并且确保能访问到内容,文件名不要后缀
文件内容格式:

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "teamId.bunldeId",
                "paths": [
                    "/app/*"
                ]
            }
        ]
    }
}

正确返回实例:
https://help.wechat.com/apple-app-site-association

appID 为 team id + “.” + bunlde id
paths 为指定路径能获取到 ,若为 "/*" 则是官网地址下都能获取到 ,微信建议增加个路径

检测方法: https://search.developer.apple.com/appsearch-validation-tool/

输入设置好的路径 例如:
截屏2020-07-16 下午4.51.28.png

能正确返回 名称 描述就是配置好了

步骤二:
在微信开放平台增加 universal link

WechatIMG28.jpeg

步骤三:
到开发者中心,把对应id下的Associated Domains 勾选上


截屏2020-07-16 下午4.54.25.png

然后到项目中 targets-signing&capabilities 中增加Associated Domains
内容为 applinks:help.wechat.com (help.wechat.com:配置文件的域名)
注意 debug release


WechatIMG26.jpeg

步骤四:

代码设置

       // 在  didFinishLaunchingWithOptions 方法中设置
        WXApi.registerApp(KYConstants.kWXAppID, universalLink: "https://help.wechat.com/")
         
        /// 打开调试日志
        UMSocialManager.default()?.openLog(false)
        UMConfigure.initWithAppkey(KYConstants.kUMengAppKey, channel: "App Store")
        
        //打开图片水印
        UMSocialGlobal.shareInstance()?.isUsingHttpsWhenShareContent = false
        
        // 配置微信平台的Universal Links
        UMSocialGlobal.shareInstance()?.universalLinkDic = ["UMSocialPlatformType_WechatSession":"https://help.wechat.com/"]
        //设置微信的appKey和appSecret
        UMSocialManager.default()?.setPlaform(.wechatSession, appKey: KYConstants.kWXAppID, appSecret: KYConstants.kWXAppSecret, redirectURL: " ")

回调处理

    /// 友盟微信登录
    func wxLogin() {
        
        if UMSocialManager.default()?.isInstall(.wechatSession) == false {
            log("未安装微信")
            return
        }
        UMSocialManager.default()?.getUserInfo(with: .wechatSession, currentViewController: nil) { (result, error) in
            if error == nil {
                if let resp = result as? UMSocialUserInfoResponse {
                    // 授权信息
                }else {
                    log("获取失败")
                }
                
            }else {
                log("获取错误")

            }
        }
    }

你可能感兴趣的:(iOS Universal link)