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

3 篇文章 0 订阅
3 篇文章 0 订阅

原文地址: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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值