From 41aa6375f4086c3bbabd00c710c0734b25962d78 Mon Sep 17 00:00:00 2001 From: 无故事王国 <841720330@qq.com> Date: 星期日, 27 七月 2025 22:54:38 +0800 Subject: [PATCH] 修复BUG,修改逻辑 --- DolphinEnglishLearnStudent/Config/WeChatTools.swift | 424 ++++++++++++++++++++++++++-------------------------- 1 files changed, 212 insertions(+), 212 deletions(-) diff --git a/DolphinEnglishLearnStudent/Config/WeChatTools.swift b/DolphinEnglishLearnStudent/Config/WeChatTools.swift index a13fa73..7c782e7 100644 --- a/DolphinEnglishLearnStudent/Config/WeChatTools.swift +++ b/DolphinEnglishLearnStudent/Config/WeChatTools.swift @@ -8,216 +8,216 @@ import Foundation import HandyJSON -typealias WeachatClosure = (WechatModel?)->(Void) -typealias WechatUserClosure = (WechatUserInfoModel?)->(Void) +//typealias WeachatClosure = (WechatModel?)->(Void) +//typealias WechatUserClosure = (WechatUserInfoModel?)->(Void) -struct WechatModel:HandyJSON{ - var access_token = "" - var expires_in = 0 - var openid = "" - var refresh_token = "" - var scope = "" - var unionid = "" -} - -struct WechatUserInfoModel:HandyJSON{ - var openid = "" - var nickname = "" - var sex = 1 - var province = "" - var city = "" - var country = "" - var headimgurl = "" - var privilege = "" - var unionid = "" -} - -class WeChatTools{ - - static func register(appid:String,link:String){ - WXApi.registerApp(appid, universalLink: link) - } - - /// 授权登录 - static func sendAuthRequest(){ - let sendAuthReq = SendAuthReq() - sendAuthReq.scope = "snsapi_userinfo" - sendAuthReq.state = "dolpinEnglishStudent_iOS" - WXApi.send(sendAuthReq) - } - - /// 完成授权登录,获取token - static func getAccessToken(_ resp:SendAuthResp, loginInfo:WeachatClosure?){ - guard resp.code != nil else { - return - } - let url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=\(WeChatAPPID)&secret=\(WeChatSecrect)&code=\(resp.code!)&grant_type=authorization_code" - let Url = URL(string: url) - let session = URLSession.shared - let task = session.dataTask(with: Url!) { (data, response, error) in - if error != nil{ - return - } - do{ - if let dataAsJSON = try JSONSerialization.jsonObject(with: data!) as? Dictionary<String, Any>{ - let model = WechatModel.deserialize(from: dataAsJSON) - loginInfo?(model) - }else{ - loginInfo?(nil) - } - }catch{ - loginInfo?(nil) - } - } - task.resume() - } - - /// 获取用资料 - static func getUserInfo(access_token:String,openId:String,userInfo:WechatUserClosure?){ - guard !access_token.isEmpty else { - return - } - - guard !openId.isEmpty else { - return - } - - let url = "https://api.weixin.qq.com/sns/userinfo?access_token=\(access_token)&openid=\(openId)" - let Url = URL(string: url) - let session = URLSession.shared - let task = session.dataTask(with: Url!) { (data, response, error) in - if error != nil{ - return - } - do{ - if let dataAsJSON = try JSONSerialization.jsonObject(with: data!) as? Dictionary<String, Any>{ - let model = WechatUserInfoModel.deserialize(from: dataAsJSON) - userInfo?(model) - }else{ - userInfo?(nil) - } - }catch{ - userInfo?(nil) - } - } - task.resume() - } - - /// 分享文本 - static func shareText(_ text:String,scene:WXScene = WXSceneSession){ - let req = SendMessageToWXReq() - req.bText = true - req.text = text - req.scene = Int32(scene.rawValue) - WXApi.send(req) - } - - /// 分享图片 - static func sharePic(_ img:UIImage,thumb:UIImage,scale:CGFloat = 0.6,scene:WXScene = WXSceneTimeline){ - - let imageObject = WXImageObject() - imageObject.imageData = img.jpegData(compressionQuality: scale)! - - let mediaMessage = WXMediaMessage() - mediaMessage.thumbData = thumb.jpegData(compressionQuality: scale) - mediaMessage.mediaObject = imageObject - - let req = SendMessageToWXReq() - req.bText = false - req.message = mediaMessage - req.scene = Int32(scene.rawValue) - WXApi.send(req) - } - - /// 分享图片 - static func sharePic(_ img:UIImage,thumb:UIImage,text:String,scale:CGFloat = 0.6,scene:WXScene = WXSceneTimeline){ - - let imageObject = WXImageObject() - imageObject.imageData = img.pngData()! - - let mediaMessage = WXMediaMessage() -// mediaMessage.thumbData = thumb.pngData()! - mediaMessage.mediaObject = imageObject - mediaMessage.title = text - - let req = SendMessageToWXReq() - req.bText = false - req.message = mediaMessage - req.scene = Int32(scene.rawValue) - WXApi.send(req) - } - - /// 分享音乐 - static func shareMusic(_ musicUrl:String,musicLowBandUrl:String,title:String,desc:String,thumb:UIImage,scene:WXScene = WXSceneSession){ - let musicObject = WXMusicObject() - musicObject.musicUrl = musicUrl - musicObject.musicLowBandUrl = musicLowBandUrl - - let mediaMessage = WXMediaMessage() - mediaMessage.title = title - mediaMessage.description = desc - mediaMessage.setThumbImage(thumb) - mediaMessage.mediaObject = musicObject - - let req = SendMessageToWXReq() - req.bText = false - req.message = mediaMessage - req.scene = Int32(scene.rawValue) - WXApi.send(req) - } - - /// 分享音乐 - static func shareMusic(_ musicData:String,musicLowBandData:String,title:String,desc:String,thumb:UIImage,scene:WXScene = WXSceneSession){ - let musicObject = WXMusicObject() - musicObject.musicDataUrl = musicData - musicObject.musicLowBandUrl = musicLowBandData - - let mediaMessage = WXMediaMessage() - mediaMessage.title = title - mediaMessage.description = desc - mediaMessage.setThumbImage(thumb) - mediaMessage.mediaObject = musicObject - - let req = SendMessageToWXReq() - req.bText = false - req.message = mediaMessage - req.scene = Int32(scene.rawValue) - WXApi.send(req) - } - - static func shareUrl(_ url:String,title:String,desc:String,thumb:UIImage,scene:WXScene = WXSceneSession){ - - let webpageObject = WXWebpageObject() - webpageObject.webpageUrl = url - - let mediaMessage = WXMediaMessage() - mediaMessage.title = title - mediaMessage.description = desc - mediaMessage.setThumbImage(thumb) - mediaMessage.mediaObject = webpageObject - - let req = SendMessageToWXReq() - req.bText = false - req.message = mediaMessage - req.scene = Int32(scene.rawValue) - WXApi.send(req) - } - - static func shareVideo(_ url:String,videoLowBandUrl:String,title:String,desc:String,thumb:UIImage, scene:WXScene = WXSceneSession){ - let videoObject = WXVideoObject() - videoObject.videoUrl = url - videoObject.videoLowBandUrl = videoLowBandUrl - - let mediaMessage = WXMediaMessage() - mediaMessage.title = title - mediaMessage.description = desc - mediaMessage.setThumbImage(thumb) - mediaMessage.mediaObject = videoObject - - let req = SendMessageToWXReq() - req.bText = false - req.message = mediaMessage - req.scene = Int32(scene.rawValue) - WXApi.send(req) - } -} +//struct WechatModel:HandyJSON{ +// var access_token = "" +// var expires_in = 0 +// var openid = "" +// var refresh_token = "" +// var scope = "" +// var unionid = "" +//} +// +//struct WechatUserInfoModel:HandyJSON{ +// var openid = "" +// var nickname = "" +// var sex = 1 +// var province = "" +// var city = "" +// var country = "" +// var headimgurl = "" +// var privilege = "" +// var unionid = "" +//} +// +//class WeChatTools{ +// +// static func register(appid:String,link:String){ +// WXApi.registerApp(appid, universalLink: link) +// } +// +// /// 授权登录 +// static func sendAuthRequest(){ +// let sendAuthReq = SendAuthReq() +// sendAuthReq.scope = "snsapi_userinfo" +// sendAuthReq.state = "dolpinEnglishStudent_iOS" +// WXApi.send(sendAuthReq) +// } +// +// /// 完成授权登录,获取token +// static func getAccessToken(_ resp:SendAuthResp, loginInfo:WeachatClosure?){ +// guard resp.code != nil else { +// return +// } +// let url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=\(WeChatAPPID)&secret=\(WeChatSecrect)&code=\(resp.code!)&grant_type=authorization_code" +// let Url = URL(string: url) +// let session = URLSession.shared +// let task = session.dataTask(with: Url!) { (data, response, error) in +// if error != nil{ +// return +// } +// do{ +// if let dataAsJSON = try JSONSerialization.jsonObject(with: data!) as? Dictionary<String, Any>{ +// let model = WechatModel.deserialize(from: dataAsJSON) +// loginInfo?(model) +// }else{ +// loginInfo?(nil) +// } +// }catch{ +// loginInfo?(nil) +// } +// } +// task.resume() +// } +// +// /// 获取用资料 +// static func getUserInfo(access_token:String,openId:String,userInfo:WechatUserClosure?){ +// guard !access_token.isEmpty else { +// return +// } +// +// guard !openId.isEmpty else { +// return +// } +// +// let url = "https://api.weixin.qq.com/sns/userinfo?access_token=\(access_token)&openid=\(openId)" +// let Url = URL(string: url) +// let session = URLSession.shared +// let task = session.dataTask(with: Url!) { (data, response, error) in +// if error != nil{ +// return +// } +// do{ +// if let dataAsJSON = try JSONSerialization.jsonObject(with: data!) as? Dictionary<String, Any>{ +// let model = WechatUserInfoModel.deserialize(from: dataAsJSON) +// userInfo?(model) +// }else{ +// userInfo?(nil) +// } +// }catch{ +// userInfo?(nil) +// } +// } +// task.resume() +// } +// +// /// 分享文本 +// static func shareText(_ text:String,scene:WXScene = WXSceneSession){ +// let req = SendMessageToWXReq() +// req.bText = true +// req.text = text +// req.scene = Int32(scene.rawValue) +// WXApi.send(req) +// } +// +// /// 分享图片 +// static func sharePic(_ img:UIImage,thumb:UIImage,scale:CGFloat = 0.6,scene:WXScene = WXSceneTimeline){ +// +// let imageObject = WXImageObject() +// imageObject.imageData = img.jpegData(compressionQuality: scale)! +// +// let mediaMessage = WXMediaMessage() +// mediaMessage.thumbData = thumb.jpegData(compressionQuality: scale) +// mediaMessage.mediaObject = imageObject +// +// let req = SendMessageToWXReq() +// req.bText = false +// req.message = mediaMessage +// req.scene = Int32(scene.rawValue) +// WXApi.send(req) +// } +// +// /// 分享图片 +// static func sharePic(_ img:UIImage,thumb:UIImage,text:String,scale:CGFloat = 0.6,scene:WXScene = WXSceneTimeline){ +// +// let imageObject = WXImageObject() +// imageObject.imageData = img.pngData()! +// +// let mediaMessage = WXMediaMessage() +// // mediaMessage.thumbData = thumb.pngData()! +// mediaMessage.mediaObject = imageObject +// mediaMessage.title = text +// +// let req = SendMessageToWXReq() +// req.bText = false +// req.message = mediaMessage +// req.scene = Int32(scene.rawValue) +// WXApi.send(req) +// } +// +// /// 分享音乐 +// static func shareMusic(_ musicUrl:String,musicLowBandUrl:String,title:String,desc:String,thumb:UIImage,scene:WXScene = WXSceneSession){ +// let musicObject = WXMusicObject() +// musicObject.musicUrl = musicUrl +// musicObject.musicLowBandUrl = musicLowBandUrl +// +// let mediaMessage = WXMediaMessage() +// mediaMessage.title = title +// mediaMessage.description = desc +// mediaMessage.setThumbImage(thumb) +// mediaMessage.mediaObject = musicObject +// +// let req = SendMessageToWXReq() +// req.bText = false +// req.message = mediaMessage +// req.scene = Int32(scene.rawValue) +// WXApi.send(req) +// } +// +// /// 分享音乐 +// static func shareMusic(_ musicData:String,musicLowBandData:String,title:String,desc:String,thumb:UIImage,scene:WXScene = WXSceneSession){ +// let musicObject = WXMusicObject() +// musicObject.musicDataUrl = musicData +// musicObject.musicLowBandUrl = musicLowBandData +// +// let mediaMessage = WXMediaMessage() +// mediaMessage.title = title +// mediaMessage.description = desc +// mediaMessage.setThumbImage(thumb) +// mediaMessage.mediaObject = musicObject +// +// let req = SendMessageToWXReq() +// req.bText = false +// req.message = mediaMessage +// req.scene = Int32(scene.rawValue) +// WXApi.send(req) +// } +// +// static func shareUrl(_ url:String,title:String,desc:String,thumb:UIImage,scene:WXScene = WXSceneSession){ +// +// let webpageObject = WXWebpageObject() +// webpageObject.webpageUrl = url +// +// let mediaMessage = WXMediaMessage() +// mediaMessage.title = title +// mediaMessage.description = desc +// mediaMessage.setThumbImage(thumb) +// mediaMessage.mediaObject = webpageObject +// +// let req = SendMessageToWXReq() +// req.bText = false +// req.message = mediaMessage +// req.scene = Int32(scene.rawValue) +// WXApi.send(req) +// } +// +// static func shareVideo(_ url:String,videoLowBandUrl:String,title:String,desc:String,thumb:UIImage, scene:WXScene = WXSceneSession){ +// let videoObject = WXVideoObject() +// videoObject.videoUrl = url +// videoObject.videoLowBandUrl = videoLowBandUrl +// +// let mediaMessage = WXMediaMessage() +// mediaMessage.title = title +// mediaMessage.description = desc +// mediaMessage.setThumbImage(thumb) +// mediaMessage.mediaObject = videoObject +// +// let req = SendMessageToWXReq() +// req.bText = false +// req.message = mediaMessage +// req.scene = Int32(scene.rawValue) +// WXApi.send(req) +// } +//} -- Gitblit v1.7.1