> >

注意→_→:目前ShareSDK for iOS有2个大版本:ShareSDK v3.x(新版)和ShareSKD v2.x(旧版),本教程是ShareSDK v3.x适用的集成文档。若需要ShareSDK v2.x,请参考旧版文档:网页链接

1、Unity3D部分

1、下载ShareSDK的Unity3D工具类

打开Github下载New-Unity-For-ShareSDK项目。将项目中的Unity3dDemo/Assets/Plugins目录拷贝到您的项目的Assets目录中,或双击sharesdk-unity3d-plugin.unitypackage导入相关文件。 注意该操作可能会覆盖您原来已经存在的文件!

2、挂接ShareSDK脚本并配置平台信息

选择好需要挂接的GameObject(例如Main Camera),在右侧栏中点击Add Component,选择Share SDK 进行挂接。(如下图)

step1

step2

(如上图)挂接后会发现提供了当前支持的平台和及其配置信息。可以直接在此处修改你所需要的平台的配置信息。需要注意的是当前的编译环境是Android还是iOS,其字段名称是不同的哦!

红色方框第一个App Key指的是ShareSDK的appkey,可以到Mob官网注册应用获得。其他的就是各社交平台各自的配置信息。

除了可以上图处设定配置信息,也可以在ShareSDKDevInfo.cs(/ Assets / Plugins / ShareSDK / ShareSDKDevInfo.cs ) 文件中配置所需的平台信息,效果都是一样的,步骤如下:

i.配置您自己的ShareSDK的AppKey

public class AppKey 
{
	//配置ShareSDK AppKey
	public string appKey = "a5d9150e8348";
}

ii.选择所需要的平台,不想要的可以直接注释或删掉

public class DevInfoSet

{
	public SinaWeiboDevInfo sinaweibo;
	public TencentWeiboDevInfo tencentweibo;
	public QQ qq;
	public QZone qzone;
}

iii.配置对应平台的信息(建议直接修改字符串值即可).

public class SinaWeiboDevInfo : DevInfo 
{
	#if UNITY_ANDROID
	public const int type = (int) PlatformType.SinaWeibo;
	public string SortId = "1";
	public string AppKey = "568898243";
	public string AppSecret = "38a4f8204cc784f81f9f0daaf31e02e3";
	public string RedirectUrl = "http://www.sharesdk.cn";
	public string ShareByAppClient = "false";
	#elif UNITY_IPHONE
	public const int type = (int) PlatformType.SinaWeibo;
	public string app_key = "568898243";
	public string app_secret ="38a4f8204cc784f81f9f0daaf31e02e3";
	public string redirect_uri = "http://www.sharesdk.cn";
	public string auth_type = "both";	//can pass "both","sso",or "web"

	#endif
}

以上平台的app_key、app_secret等字段不同分享平台可能不同,详情可参考:《统一表》。

3、进行分享、授权

请先引入命名空间:
using cn.sharesdk.unity3d;
使用ShareSDK:
private ShareSDK ssdk;

分享步骤:

i.定制分享信息

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.SetShareType(ContentType.Image);

ii:如有需要,可针对指定平台定制分享内容(可选 – 各平台定制字段请参考附件<分享内容参数表>)

ShareContent customizeShareParams = new ShareContent();
customizeShareParams.SetText("Sina share content");
customizeShareParams.SetImageUrl("http://git.oschina.net/alexyu.yxj/MyTmpFiles/raw/master/kmk_pic_fld/small/107.JPG");
customizeShareParams.SetShareType(ContentType.Image);
customizeShareParams.SetObjectID("SinaID");
content.SetShareContentCustomize(PlatformType.SinaWeibo, customizeShareParams);

iii.指定分享的回调

ssdk.shareHandler = ShareResultHandler;
以下为回调的定义:
void ShareResultHandler (int reqID, ResponseState state, PlatformType type, Hashtable result)
    {
        if (state == ResponseState.Success)
        {
            print ("share result :");
            print (MiniJSON.jsonEncode(result));
        }
        else if (state == ResponseState.Fail)
        {
            print ("fail! error code = " + result["error_code"] + "; error msg = " + result["error_msg"]);
        }
        else if (state == ResponseState.Cancel) 
        {
            print ("cancel !");
        }
    }

iv.然后将内容传入分享接口

//通过分享菜单分享
ssdk.ShowPlatformList (null, content, 100, 100);

//直接通过编辑界面分享
ssdk.ShowShareContentEditor (PlatformType.SinaWeibo, content);

//直接分享
ssdk.ShareContent (PlatformType.SinaWeibo, content);

 

授权步骤:

i.指定授权的回调

ssdk.authHandler = AuthResultHandler;
以下为回调的定义:
void AuthResultHandler(int reqID, ResponseState state, PlatformType type, Hashtable result)
	{
		if (state == ResponseState.Success)
		{
			print ("authorize success !");
		}
		else if (state == ResponseState.Fail)
		{
print ("fail! error code = " + result["error_code"] + "; error msg = " + result["error_msg"]);
		}
		else if (state == ResponseState.Cancel) 
		{
			print ("cancel !");
		}
	}

ii.进行授权

ssdk.Authorize(reqID, PlatformType.SinaWeibo);

获取用户信息

i.指定获取用户信息的回调

sdk.showUserHandler = GetUserInfoResultHandler;
以下为回调的定义:
void GetUserInfoResultHandler (int reqID, ResponseState state, PlatformType type, Hashtable result)
	{
		if (state == ResponseState.Success)
		{
			print ("get user info result :");
			print (MiniJSON.jsonEncode(result));
		}
		else if (state == ResponseState.Fail)
		{
			print ("fail! error code = " + result["error_code"] + "; error msg = " + result["error_msg"]);
}
		else if (state == ResponseState.Cancel) 
		{
			print ("cancel !");
		}
	}

ii.获取用户信息

ssdk.GetUserInfo(reqID, PlatformType.SinaWeibo);

2、iOS部分

修改ShareSDKUnity3DBridge.m文件(/Assets / Plugins / iOS / ShareSDKUnity3DBridge.m )

对于需要使用SSO(QQ空间、人人网)或者部分需要客户端分享的平台(包括:微信、Google+、QQ)。请确认相对应的宏是否定义,如集成微信,则开启__SHARESDK_WECHAT__。其他平台同理,如下图:

mm

修改完成后可以导出XCode项目。

注意:以下步骤需要在导出XCode项目后进行。

登录ShareSDK的官方网站下载并解压最新版本的SDK。如果您还尚未下载,请点击这里下载  。(注意,可以自定义下载sdk,勾选自己要的平台下载,也可以下载我们整个官方的demo,demo里整个sdk,包含了全部平台)如果下载的是官方的demo,解压后如下图:

4AAF4149-CB49-476A-918D-D98ABA1F70E0

ShareSDK 文件夹拖入到 Unity3D 导出的 Xcode 项目中,操作如下图:

2D7ECCA0-0655-4C2E-A386-0F32DEF09E64

选择Create groups,勾选项目(一般情况下默认已经做好)

勾选Copy item if needed可以将文件夹复制到Xcode项目中(若不勾选则仅为引用,但也可以正常使用),然后点击Finish即可将ShareSDK添加到Xcode项目中了。

SDK3

将ShareSDK导入Xcode项目后,请添加相应的系统依赖库。此步骤请参考《ShareSDKiOS简洁版快速集成》中的第三大步第二小步

SDK4

添加URL Scheme:对于需要客户端分享平台和SSO授权平台,需要添加URL Scheme。请参考《ShareSDKiOS简洁版快速集成》中的可选部分。

Notice:如遇到任何问题,可跟我们的技术支持同事联系,QQ: 4006852216