美文网首页UniversalLink
iOS开发 - 微信SDK UniversalLink配置

iOS开发 - 微信SDK UniversalLink配置

作者: 来者可追文过饰非 | 来源:发表于2020-06-23 19:05 被阅读0次

    时间: 2020-06-23
    WechatOpenSDK版本: 1.8.7.1

    微信在最近的版本中将App打开微信的方式由原来的url scheme的形式,改成了universalLink的形式, 更新新版本之后微信的登录以及支付都会遇到问题(第三方登录如果是集成友盟也需要更新对应的sdk),解决方法参考如下

    配置UniversalLinks

    1. 前往Apple Developer 修改项目对应的App ID,使其支持UniversalLinks,然后重新生成描述文件并下载
    1.png
    2. 让同后端学准备一个域名,使用系统自带的文本编辑制作一个纯文本文件,文本内容如下,注意替换自己的Team ID 和 Bundle ID,然后命名为apple-app-site-association,完成之后将该文件给后端同学,将其放到域名的根目录之下,在此假设该域名为https://www.domain.com/,后边会以此为标注配置其他参数

    此段为微信开发平台的一个回答 供大家参考
    说一下这个坑:
    举个例子:
    你的域名是:https://xxx.com 你要匹配的是:https://xxx.com/app/link/
    1、微信开发者 Universal Link 填写:https://xxx.com/app/link/
    2、xcode 的 Associated Domains 添加 applinks:xxx.com
    3、在你关联的域根目录下 创建 apple-app-site-association 文件,文件格式参照https://developer.apple.com/documentation/safariservices/supporting_associated_domains 。这里我们使用:{"applinks":{"apps":[],"details":[{"appID":"teamID.bundleID","paths":["/app/link/*"]}]}}

    4、代码中注入即可

    {
        "applinks": {
            "apps": [],
            "details": [
                {
                    "appID": "你的Team ID.你的Bundle ID",
                    "paths": [ "*" ]
                },
                // 如果有多个APP的话,可以填写多个
            {
                    "appID": "你的Team ID.你的Bundle ID",
                    "paths": [ "*" ]
                }
            ]
        }
    }
    
    
    3. 去微信后台配置Universal Link, 如图所示,要与上文提到的后端给的域名一致,可以添加一个path,如此处配置为https://www.domain.com/ios/
    2.png
    4. 项目中配置,如图所示 此处应该配置applinsk:+上文提到域名去掉https://,如例所示此处应该为 applinks:www.domain.com, 此时配置完毕后,运行App,用safiri打开上文提到的域名,上端应该会显示一个横幅,提示是否在你的app中打开,点击打开的会就会直接打开App
    3.png
    5. 注册
    // 后边的参数应与微信后台配置的UniversalLink一致
     WXApi.registerApp(WX_APP_KEY, universalLink: "https://www.domain.com/ios/")
    

    遇到的问题

    1. 配置完之后运行项目,拉不起来微信?

    需要在info.plist中LSApplicationQueriesSchemes下边添加一项weixinULAPI

    2. 支付完之后不走微信回调?

    在Appdelegate中添加如下方法

        func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
            return WXApi.handleOpenUniversalLink(userActivity, delegate: self)
        }
    

    至此,新版微信SDK集成完毕

    相关文章

      网友评论

        本文标题:iOS开发 - 微信SDK UniversalLink配置

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