【ShareSDK】Unity3d 使用ShareSDK 做安卓分享

来源:互联网 发布:linux 查看登陆用户 编辑:程序博客网 时间:2024/05/18 14:42

原文地址:http://blog.csdn.net/u012322710/article/details/52851254


一.  从    http://www.mob.com/    下载Unity3D的ShareSDK包。


二.  注册一个账号,随便创建一个应用,获得一个APP Key ( 这一步不是必须的,但是可以统计分析数据,很实用)。


三.  导入ShareSDKForU3D.unitypackage插件包,在Unity里,随便在一个物体上拖进shareSDK这个脚本,选择为安卓项目。


四.  修改shareSDK组建,填入刚才获得的APP Key ,修改下面的各种平台的对接参数,需要去各个平台申请,如果不修改这个脚本的话,使用的都是官方的测试数据。不需要的平台可以直接在ShareSDKDevInfo.cs中注释掉。


五.  写代码


using UnityEngine;using System.Collections;using UnityEngine.UI;using cn.sharesdk.unity3d; //导入ShareSdkpublic class ShareDemo : MonoBehaviour {    private ShareSDK shareSdk;    public  Text message;  void Start () {        shareSdk = GetComponent<ShareSDK>();        //分享回调事件        shareSdk.shareHandler += ShareResultHandler;        //授权回调事件        shareSdk.authHandler += AuthResultHandler;        //用户信息事件        shareSdk.showUserHandler += GetUserInfoResultHandler;}    //分享    public void OnShareClick()    {        ShareContent content = new ShareContent();        //这个地方要参考不同平台需要的参数    可以看ShareSDK提供的   分享内容参数表.docx        content.SetText("快来和我一起玩这个游戏吧!");                            //分享文字        content.SetImageUrl("https://f1.webshare.mob.com/code/demo/img/4.jpg");   //分享图片        content.SetTitle("标题title");                                            //分享标题        content.SetTitleUrl("http://www.qq.com");        content.SetSite("Mob-ShareSDK");        content.SetSiteUrl("http://www.mob.com");        content.SetUrl("http://www.sina.com");                                    //分享网址        content.SetComment("描述");        content.SetMusicUrl("http://up.mcyt.net/md5/53/OTg1NjA5OQ_Qq4329912.mp3");//分享类型为音乐时用        content.SetShareType(ContentType.Webpage);        //shareSdk.ShowPlatformList(null, content, 100, 100);                      //弹出分享菜单选择列表        shareSdk.ShowShareContentEditor(PlatformType.QQ, content);                 //指定平台直接分享    }    // 分享结果回调    void ShareResultHandler (int reqID, ResponseState state, PlatformType type, Hashtable result){   //成功if (state == ResponseState.Success){            message.text =("share result :");            message.text = (MiniJSON.jsonEncode(result)); }        //失败else if (state == ResponseState.Fail){            message.text = ("fail! error code = " + result["error_code"] + "; error msg = " + result["error_msg"]);}        //关闭else if (state == ResponseState.Cancel) {            message.text = ("cancel !");}}    //授权    public void OnAuthClick()    {        //请求QQ授权//请求这个授权是为了获取用户信息来第三方登录        shareSdk.Authorize(PlatformType.QQ);    }    //授权结果回调    void AuthResultHandler(int reqID, ResponseState state, PlatformType type, Hashtable result)    {           if (state == ResponseState.Success)        {            message.text = ("authorize success !");            //授权成功的话,获取用户信息            shareSdk.GetUserInfo(type);                   }        else if (state == ResponseState.Fail)        {            message.text = ("fail! error code = " + result["error_code"] + "; error msg = " + result["error_msg"]);        }        else if (state == ResponseState.Cancel)        {            message.text = ("cancel !");        }    }    //获取用户信息    void GetUserInfoResultHandler(int reqID, ResponseState state, PlatformType type, Hashtable result)    {        if (state == ResponseState.Success)        {            //获取成功的话 可以写一个类放不同平台的结构体,用PlatformType来判断,用户的Json转化成结构体,来做第三方登录。            switch (type)            {                case PlatformType.QQ:                     message.text = (MiniJSON.jsonEncode(result));  //Json                    break;            }                    }        else if (state == ResponseState.Fail)        {            message.text = ("fail! error code = " + result["error_code"] + "; error msg = " + result["error_msg"]);        }        else if (state == ResponseState.Cancel)        {            message.text = ("cancel !");        }    }}

六.  修改安卓配置文件  AndroidManifest.xml


这个地方写了很多ShareSDK需要的安卓权限什么的,不修改也是能运行的,以后如果要和其他安卓功能结合需要修改。


结束语:还可以,挺好用的,支持安卓和iOS,而且还带统计,据说还是免费的。但是他本身带的MiniJSON真的没有LitJson好用,如果要做第三方登录还是用LitJson来解析比较好。还有授权以后转会应用,就重新打开了,导致接受不到信息。这个以后再研究吧。



Demo下载地址: http://download.csdn.NET/detail/u012322710/9657229


原创粉丝点击