Unity中实现接入ShareSDK的微信登陆和分享功能
发布日期:2021-06-30 19:57:17
浏览次数:3
分类:技术文章
本文共 4842 字,大约阅读时间需要 16 分钟。
一:安卓端
——到MobTech官网和微信开发者平台获取shareSDK的AppKey、AppSecret和微信的AppID、AppSecret
——在MobTech官网上下载Unity的ShareSDK并导入unitypackage文件:
——File—BuildSettings—PlayerSettings—Publishing Settings—勾选上Custom Gradle Template(集成的核心文件)和User Proguard File
——File—BuildSettings—PlayerSettings—Publishing Settings—创建并选择签名
——打开Plugins—Android—ShareSDK—AndroidManifest文件,修改Activity的name,就是在.wxapi.WXEntryActivity的activity前加上包名
——删除这两块不必要的内容
——微信规定WXEntryActivity.java类的位置必须放到 “项目包包名.wxapi” 路径下,需要生成新的jar包,熟悉Android Studio可以自己生成,不熟悉的跟客服说帮忙生成一个新的DemoCallback.jar,然后报上package的名字,等几分钟就可以收到新的jar
进入到目录Plugins—Android—ShareSDK—libs下,将新的jar包替换原有的DemoCallback.jar包——微信登录实现
首先shareSDK.Authorize(PlatformType.WeChat)拉取微信(授权) 拉取成功后(shareSDK.authHandler = AuthResultHandler)执行AuthResultHandler回调 在AuthResultHandler回调返回成功后去获得用户信息shareSDK.GetUserInfo(PlatformType.WeChat) 获得用户信息成功后(shareSDK.showUserHandler = GetUserInfoResultHandler)执行GetUserInfoResultHandler回调GetUserInfoResultHandler回调返回成功表示登录成功using System;using System.Collections;using UnityEngine;using cn.sharesdk.unity3d;using UnityEngine.SceneManagement;public class Login : MonoBehaviour{ private ShareSDK shareSDK; //ShareSDK脚本 private void Awake() { shareSDK = FindObjectOfType(); shareSDK.authHandler = AuthResultHandler; shareSDK.showUserHandler = GetUserInfoResultHandler; } /// /// 按下登陆按钮 /// public void OnLoginButtonDown() { //拉起微信 shareSDK.Authorize(PlatformType.WeChat); } //拉取微信成功的回调 private void AuthResultHandler(int reqID, ResponseState state, PlatformType type, Hashtable result) { if (state == ResponseState.Success) { shareSDK.GetUserInfo(PlatformType.WeChat); Debug.Log("authorize success !"); } else if (state == ResponseState.Fail) { Debug.Log("fail! throwable stack = " + result["stack"] + "; error msg = " + result["msg"]); } else if (state == ResponseState.Cancel) { Debug.Log("cancel !"); } } //得到用户信息成功的回调 private void GetUserInfoResultHandler(int reqID, ResponseState state, PlatformType type, Hashtable result) { if (state == ResponseState.Success) { Debug.Log("get user info result :"); Debug.Log(MiniJSON.jsonEncode(result)); //保存用户信息 PlayerPrefs.SetString("userInfo", MiniJSON.jsonEncode(result)); //切换场景 SceneManager.LoadScene("Main"); } else if (state == ResponseState.Fail) { Debug.Log("fail! throwable stack = " + result["stack"] + "; error msg = " + result["msg"]); } else if (state == ResponseState.Cancel) { Debug.Log("cancel !"); } }}////// 用户信息类/// [Serializable]public class Root{ public string nickname; public string headimgurl;}
——微信分享实现
——勾选掉ShareSDK的Bypass Approval,否则分享不能显示 ——微信分享代码设置shareSDK.shareHandler = ShareResultHandler回调,分享成功后执行ShareResultHandler回调using UnityEngine;using cn.sharesdk.unity3d;using System.Collections;public class Share : MonoBehaviour{ private ShareSDK shareSDK; //ShareSDK脚本 private void Awake() { shareSDK = FindObjectOfType(); shareSDK.shareHandler = ShareResultHandler; } /// /// 分享的回调 /// private void ShareResultHandler(int reqID, ResponseState state, PlatformType type, Hashtable result) { if (state == ResponseState.Success) { Debug.Log("share result :"); Debug.Log(MiniJSON.jsonEncode(result)); } else if (state == ResponseState.Fail) { Debug.Log("fail! throwable stack = " + result["stack"] + "; error msg = " + result["msg"]); } else if (state == ResponseState.Cancel) { Debug.Log("cancel !"); } } ////// 按下分享按钮 /// public void OnShareButtonDown() { ShareContent content = new ShareContent(); content.SetText("邀请的文字"); content.SetShareType(ContentType.Text); //WeChat:微信朋友 WeChatMoments:朋友圈 shareSDK.ShareContent(PlatformType.WeChat, content); }}
二:IOS端
三:从服务器下载头像
////// 下载头像 /// /// 头像的url public IEnumerator DownloadHeadicon(string url) { if (url == null) { yield return null; } UnityWebRequest uwr = UnityWebRequest.Get(url); DownloadHandlerTexture downloadTexture = new DownloadHandlerTexture(true); uwr.downloadHandler = downloadTexture; yield return uwr.SendWebRequest(); Texture2D _texture = null; if (!(uwr.isNetworkError || uwr.isHttpError)) { _texture = downloadTexture.texture; headicon_img.texture = _texture; } else { Debug.Log("download Texture Error"); } }
转载地址:https://liuhaowen.blog.csdn.net/article/details/104485581 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年04月30日 18时44分10秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
微信企业邮箱,手机邮箱格式地址怎么写?
2019-04-30
公司如何申请企业邮箱,公司邮箱怎么申请,公司企业邮箱哪个好?
2019-04-30
电子邮箱账号怎么申请,怎样申请邮箱账号呢
2019-04-30
【工具使用】Google免费云环境Colaboratory使用
2019-04-30
【深度学习笔记】卷积层,全连接层,池化层的相关输出参数计算
2019-04-30
【NLP学习笔记】文本分类概述
2019-04-30
【深度学习笔记】文本分类
2019-04-30
【转载】炼丹实验室:深度学习网络调参技巧
2019-04-30
【论文阅读笔记】文本分类论文汇总
2019-04-30
【NLP学习笔记】One-hot encoding:独热编码
2019-04-30
【工具使用】CSDN编辑器markdown字体、颜色与字号的设置
2019-04-30
【NLP学习笔记】词共现矩阵
2019-04-30
【工具与环境】Windows下安装Sublime Text 3
2019-04-30
【工具与环境】Excel中批量插入行
2019-04-30
【学习笔记】对vanilla的一些个人理解
2019-04-30
“学硕” VS “专硕”
2019-04-30
【NLP学习笔记】知识图谱阅读笔记及其心得
2019-04-30