美文网首页
Swift - iOS友盟分享,QQ、微信,如何配置 Unive

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

作者: AlwaysLuckyMa | 来源:发表于2022-06-20 17:47 被阅读0次

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


    一、 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、微信,如何配置 Unive

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