美文网首页转载文章
iOS 微信分享的链接唤醒 APP 并跳转到指定页面

iOS 微信分享的链接唤醒 APP 并跳转到指定页面

作者: 执念12o3 | 来源:发表于2022-11-09 11:22 被阅读0次

这篇文章主要讲从微信或者浏览器点击链接,跳转APP以后的操作及遇到的问题,至于APP分享到微信,大家可以按照文档一步一步集成就好了https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/iOS.html,有疑问可以留言

我们先来看一下效果


微信跳转APP指定页面.gif

1.微信返回拉起我们的应用是在AppDelegate里面的这个方法

func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
       if (url.absoluteString).contains("wechat") {
            let handleUrlStr = url.absoluteString
            if let handleUrl = URL(string: handleUrlStr) {
                return WXApi.handleOpen(handleUrl, delegate: WXApiManager.shared)
            }
        }
        return false
     }self

这个方法需要传一个delegate,这个delegate就是回调onReq(_ req: BaseReq)的地方,而这个地方,需要把这个方法抛出去到你使用的类里,而不是AppDelegate;所以delegate写这个单例而不是写self,单例里需要写两个回调方法

//微信
class WXApiManager:NSObject {
    static let shared = WXApiManager()
}
extension WXApiManager:WXApiDelegate{
    func onReq(_ req: BaseReq) {
        //onReq是微信终端向第三方程序发起请求,要求第三方程序响应。根据H5给的extinfo数据做相应处理就ok了
        let launchReq = req as? LaunchFromWXReq
        let msg = launchReq?.message
        guard let extinfo = msg?.messageExt else { return  }
        if if_isLogin() {
            let currentVC = if_getTopViewController()
            currentVC?.if_openWebVC(extinfo)
        }
    }
    func onResp(_ resp: BaseResp) {
        //支付结果回调
    }
}

extension WXApiManager {
    //检查用户是否已经安装微信并且有支付功能
    private func checkWXInstallAndSupport() -> Bool {
        if !WXApi.isWXAppInstalled() {
//            MBProgressHUD.showInfo("微信未安装")
            return false
        }
        if !WXApi.isWXAppSupport() {
//            MBProgressHUD.showInfo("当前微信版本不支持支付")
            return false
        }
        return true
    }
}

注:使用delegate的时候一定要统一到WXApiManager里做处理,系统回调给微信的代理入口都是 WXApiManager.shared就OK

重点:微信delegate的唯一性,不要给微信的delegate到处设置“self”,这样回调回来就找不到代理方法了,出现onReq(_ req: BaseReq)方法不走的问题!!所以要单独创建一个WXApiManager单例作为代理回调,在WXApiManager里面处理代理回调

如本文解决了您的问题,欢迎点赞、收藏哟!!!

相关文章

网友评论

    本文标题:iOS 微信分享的链接唤醒 APP 并跳转到指定页面

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