原文地址: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; //导入ShareSdk
public 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