Swift - iOS友盟分享,QQ、微信,如何配置 Universal Link!

配置 Universal Link 需要前期准备的东西:

  • Team ID

  • Bundle ID

  • Scheme

  • 这两个随便选一个(QQ互联开放平台、腾讯开放平台)

  • 微信开放平台


一、 Team ID 如何获取

TeamID.png

二、 Bundle ID 如何获取 (Xcode里获取)

三、 Scheme 如何获取 (自己随便写个就行,最好用BundleID中间的)

schemes.png

四、 QQ互联申请



五、 微信开放平台申请和这个类似,主要是这个 Universal Link!

六、 Universal Link 配置

创建 apple-app-site-association 文件,没有文件后缀。

没有文件后缀

appID组成:TeamID 和 BundleID 中间用点 “.”连接

{
    "applinks": {
        "apps": [],
        "details": [{
            "appID": "9WP59WWWZ.com.hahahha",
            "paths": ["/*"]
        }, {
            "appID": "9WP59WWWZ.com.hahahha",
            "paths": ["*", "/qq_conn/1110402222/*"]
        }]
    }
}

最后去掉空格、回车啥的!

七、 将这个文件给你的后台,放在根目录

八、 配置 applinks ,不用去开发者账号里配置,添加以后Xcode自动帮你更新!



配置 Universal Link 主要是在配置 apple-app-site-association ,如果你的域名是https://www.hahahha.com,那么加上后缀后 https://hahahha.com/apple-app-site-association把这个复制到你的备忘录,去掉www,能跳转即成功。

配置成不成功去校验下,个人感觉不太靠谱!

https://hahahha.com/apple-app-site-association
官方API 验证工具

配置微信分享的时候最新版本的sdk调不起来微信,只能使用这个版本了!
    pod 'UMVerify' 
    pod 'UMCommon'
    pod 'UMShare/UI', '~> 6.10.2’
    pod 'UMShare/Social/ReducedWeChat', '~> 6.10.2’
    pod 'UMShare/Social/ReducedQQ', '~> 6.10.2’
    pod 'UMShare/Social/ReducedSina', '~> 6.10.2’
////////////////////////////////// 初始化 ///////////////////////////////////
        UMConfigure.initWithAppkey("567cd70c67e58ed827004222", channel: "")
        UMSocialManager.default()?.setPlaform(.QQ, appKey: "1110407222", appSecret: nil, redirectURL: nil)

/////////////////////////////////// 分享 ////////////////////////////////////
        let messageObject = UMSocialMessageObject()// 创建分享消息对象
        let image = UIImage(named: "icon")// 创建网页内容对象
        let shareObject = UMShareWebpageObject.shareObject(withTitle: "灯塔医生", descr: "好多医生!", thumImage: image)
        shareObject?.webpageUrl = "https://www.dengta120.com"// 设置网页地址
        messageObject.shareObject = shareObject// 分享消息对象设置分享内容对象
        // 调用分享接口
        UMSocialManager.default().share(to: .QQ, messageObject: messageObject, currentViewController: self) { data, error in
            if let error = error {
                print("************分享失败 \(error)*********")
            } else {
                if data is UMSocialShareResponse {
                    let resp = data as? UMSocialShareResponse
                    // 分享结果消息
                    if let message = resp?.message {
                        print("************分享成功 \(message)*********")
                    }
                } else {
                    if let data = data {
                        print("response data is \(data)")
                    }
                }
            }
        }

/////////////////////////////////// 回调 ////////////////////////////////////

    func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
        if !UMSocialManager.default().handleUniversalLink(userActivity, options: nil) {
            // 其他SDK的回调
        }
        return true
    }
    
    // 支持所有iOS系统
    func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
        //6.3的新的API调用,是为了兼容国外平台(例如:新版facebookSDK,VK等)的调用[如果用6.2的api调用会没有回调],对国内平台没有影响
        let result = UMSocialManager.default().handleOpen(url, sourceApplication: sourceApplication, annotation: annotation)
        if !result {
            // 其他如支付等SDK的回调
        }
        return result
    }
    
    
    func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
        //6.3的新的API调用,是为了兼容国外平台(例如:新版facebookSDK,VK等)的调用[如果用6.2的api调用会没有回调],对国内平台没有影响
        let result = UMSocialManager.default().handleOpen(url, options: options)
        if !result {
            // 其他如支付等SDK的回调
        }
        return result
    }

你可能感兴趣的:(Swift - iOS友盟分享,QQ、微信,如何配置 Universal Link!)