微信配置Universal Link解决方案支持多个app

本文借鉴https://www.jianshu.com/p/6a25b18577eb,感谢博主的分享。

本文主要讲解微信配置Universal Link问题,以及公司项目下多个app配置方案。

注意事项(很重要)

1.几个app共用一个pple-app-site-association文件,注意不同app可以根据path进行区分,在微信后台几openSDK传入的Universal Links是需要传入【https://域名+path】,不同的app对应不同的path,因此不会互相影响。

2.项目中AppDelegate的continueUserActivity方法:进行处理,如下,如未做处理会出现每次分享都出现正在连接界面。

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRest

oring>> * __nullable restorableObjects))restorationHandler {

return [WXApi handleOpenUniversalLink:userActivity delegate:self];

}

第一:更换的必要性

微信开发者平台,包括QQ目前新建应用都必须配置Universal Link

,老本版存量问题,微信开发者平台公告2020年3月起逐渐收回老版本功能。因此更新ShareSDK配置Universal Link

就是必须要做的。

第二:自己配置的Universal Link

步骤

1.让后台人员准备一个https的链接,供后面存放建好的apple-app-site-association文件

2.制作apple-app-site-association文件,并放置在准备好的链接根目录下

3.在App Store对相应的buildID开启Universal Link服务

4.在Xcode开启Associated Domains,并填写对应Domains

5.用GET请求测试该链接下的文件内容,并在safari浏览器中测试

6.填写微信新的LSApplicationQueriesSchemes

7.回调测试

第三步骤详解

1.准备htttps链接,制作apple-app-site-association文件(文件名一定吧不能更改),放根目录的(.well-known)的子目录下,或者根目录下,地址一定是这两个中的一个。

2.制作apple-app-site-association文件

a.单个app,示例如下,其实就是一个json,apps数组不用管,details里面填入对应得appID和paths。appID就是用前缀+bundleID的方式,把它交给你的后台人员,按照之前说的放到相应目录。并且使用GET请求进行测试,确保路径能正常访问。

{

"applinks": {

        "apps": [],

        "details": [

            {

                "appID": "xxxxxxxx.com.xxxxxxx",

                "paths": ["*"]

            },

        ]

    }

}

B.多个App同时用1个apple-app-site-association,示例如下,通过paths来限制打开那个应用。其他同单个单用,打开app就是前面域名+/shahxi/

{

"applinks": {

        "apps": [],

        "details": [

            {

                "appID":  "xxxxxxxx.com.xxxxxxx",

                "paths": ["/shanxi/*"]

            },

            {

                "appID":  "xxxxxxxx.com.xxxxxxx",

                "paths": ["/chengdu/*"]

            },

            

        ]

    }

}

3.在App Store账号管理里找到对应的app id给其开通Associated Domains服务

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

在项目中,添加对应的值,以applinks:+你准备的UniversalLink的形式填写,注意此次应是裸的域名,不要加https或者文件名例applinks:help.wechat.com

 

 

 

在注册微信分享app哪里,是完整的UniversalLink,例如多个应用可能是这样的形式(https://域名/shanxi/),微信后台哪里填写的也是完整的UniversalLinkhttps://域名/shanxi/)

 

4.一切就绪可以在Safari里面进行测试。

 卸载一次APP,build run一下,然后你就可以先在safari浏览器中测试走一波,把链接地址输入进去如https://help.wechat.com。页面加载完往下拉一下,看是否有打开APP的提示,如果有则配置成功!

5.以上步骤与微信毫无关系,但证明UniversalLink已经配置成功,可进行APP跳转。

接下来是微信开放平台和SDK注册方法填写相同UniversalLink,注意此次微信的要求https开头 /结尾,列如:https://help.wechat.com/

 

6.也许这个时候你迫不及待想去调起微信,结果一定是失败的,因为此次更新后,还要添加一个新的Schemes。在Xcode中,在info”标签栏的“LSApplicationQueriesSchemes“添加weixin 和weixinULAPI(如下图所示)。

 

 

posted @ 2019-12-30 11:06  鹰在北方  阅读(8239)  评论(21编辑  收藏  举报