swift集成友盟6.9.8,微信sdk1.8.6.1

因为微信之后不再支持1.8.6以下的分享,所以今天对友盟分享进行了升级,踩了一点坑,这里记录一下,希望能对大家有帮助。

最新微信sdk使用通用链接(Universal Link)进行跳转,注册等操作这里就不再赘述了,下面记录一下再xcode里面的集成。


1: 假设现已拿到微信Universal Links为https://xxx.xxx.cn/yyy/。

在Xcode中添加Associated Domains,新增 applinks: + 域名,其中applinks:为固定字符,已上述地址为例,域名为https://xxx.xxx.cn,则新增domians为 -> applinks:https://xxx.xxx.cn

2: 创建apple-app-site-association文件

在电脑文件夹中创建一个空白文件(注意不是xcode中创建),命名为apple-app-site-association,不加后缀

在文件中写入


{

    "applinks": {

        "apps": [],

        "details": [

            {

                "appID": "teamID.BundleIdentifier",

                "paths": [ "*"]

            },

            {

                "appID": "teamID.BundleIdentifier",

                "paths": ["*"]

            }

        ]

    }

}

其中appID由两部分组成 teamID可在苹果开发者中心查询,BundleIdentifier就是app的 Bundle Identifier。paths以1中链接为例则填/yyy/,即 "paths": [ "/yyy/*"](注意后面的*不能删掉)

details中为各类app的集合。


3: 上传apple-app-site-association文件

把2中创建的名为apple-app-site-association的文件(不带后缀名)发给后台的哥们,让他们上传到https服务器的根目录下(一级目录)。

4:初始化

由于sdk的升级,友盟的初始化方法发生了改变。下面是xcode代码中的集成(重点)

4.1: swift在桥接文件中引入WXAPI,即 #import "WXAPI.h"

4.2:在Appdelegate文件中进行初始化:

WXApi.registerApp("app在微信中注册的appkey", universalLink: "https://xxx.xxx.cn/yyy/")

UMSocialGlobal.shareInstance()?.universalLinkDic = [UMSocialPlatformType.wechatSession: "https://xxx.xxx.cn/yyy/"]

此时再调用微信分享已经可以跳转微信了,但是注意此时回调已经发生改变,需要在Appdelegate中实现以下方法则可正常跳转。而使用友盟微信登录则使用UMSocialManager,注释WXApi。

funcapplication(_application:UIApplication, continue userActivity:NSUserActivity, restorationHandler:@escaping([Any]?) ->Void) ->Bool

    {

//        let result = UMSocialManager.default()?.handleUniversalLink(userActivity, options: nil)

//        return result ?? false

        letresult =WXApi.handleOpenUniversalLink(userActivity, delegate:self)

        returnresult

    }

你可能感兴趣的:(swift集成友盟6.9.8,微信sdk1.8.6.1)