您的位置:首页 > 移动开发 > Unity3D

Unity实现众多平台一键社会化分享(ShareSDK)

2017-04-21 23:28 507 查看
本文介绍在游戏中向好友分享图片、链接等数据

使用ShareSDK可以实现多个平台的分享,比如新浪、支付宝、QQ、QQ空间、领英等几十中常用应用的好友分享

并且博主已经打包实现到了安卓,源码我上传了,需要的话可以下载参考!!!点击打开链接



开发环境的准备

进入ShareSDK官网,下载ShareSDK For Unity(我也上传了一份点击打开链接



按如下图路径把Plugins目录拖进Unity Assets目录



可能发现会报错



此时按如下图方式选择在Android平台上开发就不会报错



之后在Main Camera(其他对象也行)上添加ShareSDK脚本



其中这里的App Key需要在ShareSDK官网上注册进入后台申请一个应用,会提供一个App Key

将App Key填入脚本中



编写代码

新建一个C#脚本挂载在Main Camera(可其他对象上)
using UnityEngine;
using System.Collections;
using cn.sharesdk.unity3d;

public class MySelfText : MonoBehaviour
{
private ShareSDK ssdk;

// Use this for initialization
void Start ()
{
ssdk=this.GetComponent<ShareSDK>();
ssdk.shareHandler = ShareHandler;
ssdk.authHandler = AuthHandler;
ssdk.showUserHandler = ShowUserHandler;
}

public void OnBtnAuthorize()
{
//授权
ssdk.Authorize(PlatformType.SinaWeibo);
}

public void OnBtnGetUserMessage()
{
//获取用户信息
ssdk.GetUserInfo(PlatformType.SinaWeibo);
}

public void OnBtnSendImage()
{
//分享内容
ShareContent content = new ShareContent();
content.SetText("this is a test string.");
content.SetImageUrl("https://f1.webshare.mob.com/code/demo/img/1.jpg");
content.SetTitle("test title");
content.SetTitleUrl("http://www.mob.com");
content.SetSite("Mob-ShareSDK");
content.SetSiteUrl("http://www.mob.com");
content.SetUrl("http://www.mob.com");
content.SetComment("test description");
content.SetMusicUrl("http://mp3.mwap8.com/destdir/Music/2009/20090601/ZuiXuanMinZuFeng20090601119.mp3");
content.SetShareType(ContentType.Webpage);

//显示各个平台的分享图标列表
ssdk.ShowPlatformList(null,content,100,100);

}

void ShareHandler(int reqID, ResponseState state, PlatformType type, Hashtable data)
{
if (state == ResponseState.Success)
{
print("authorize success !");
}
else if (state == ResponseState.Fail)
{
print("fail! throwable stack = " + data["stack"] + "; error msg = " + data["msg"]);
}
else if (state == ResponseState.Cancel)
{
print("cancel !");
}
}

void AuthHandler(int reqID, ResponseState state, PlatformType type, Hashtable data)
{
if (state == ResponseState.Success)
{
print("authorize success !");
}
else if (state == ResponseState.Fail)
{
print("fail! throwable stack = " + data["stack"] + "; error msg = " + data["msg"]);
}
else if (state == ResponseState.Cancel)
{
print("cancel !");
}
}

void ShowUserHandler(int reqID, ResponseState state, PlatformType type, Hashtable data)
{
if (state == ResponseState.Success)
{
print("get user info result :");
print(MiniJSON.jsonEncode(data));
}
else if (state == ResponseState.Fail)
{
print("fail! throwable stack = " + data["stack"] + "; error msg = " + data["msg"]);
}
else if (state == ResponseState.Cancel)
{
print("cancel !");
}
}

}


在这里我简单的创建了三个按钮,将三个函数拖到对应到按钮的点击事件
最后将打包APK,需要按如下图设置下Player Setting



这样,简单的多平台分享实现

源码我已经分享了,大家可以下载学习玩玩!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unity3d