通用部分集成步骤
下载ShareSDK的Unity3D工具类
打开Github下载Unity3DShareSDKSample项目。将项目中的Unity3dDemo/Assets/Plugins目录拷贝到您的项目的Assets目录中,或双击sharesdk-unity3d-plugin.unitypackage导入相关文件。 注意该操作可能会覆盖您原来已经存在的文件!
挂接ShareSDK脚本
打开Plugins目录,将ShareSDK.cs脚本文件拖动到Main Camera对象中进行脚本挂接。

注意:如果ShareSDK.cs并非挂载在Main Camera对象或者Main Camera对象修改为其他名字时,需要调用ShareSDK. setCallbackObjectName设置回调对象名称。否则会导致需要回调的接口无法正常回调,设置代码如下:
|
ShareSDK
.
setCallbackObjectName
(“
CallbackObjectName”
)
;
|
初始化ShareSDK,在挂接的对象的Start方法中对象ShareSDK进行初始化:
|
ShareSDK
.
setCallbackObjectName
(
"Main Camera"
)
;
ShareSDK
.
open
(
"api20"
)
;
|
然后初始化社交平台,代码如下:
|
Hashtable
sinaWeiboConf
=
new
Hashtable
(
)
;
sinaWeiboConf
.
Add
(
"app_key"
,
"568898243"
)
;
sinaWeiboConf
.
Add
(
"app_secret"
,
"38a4f8204cc784f81f9f0daaf31e02e3"
)
;
sinaWeiboConf
.
Add
(
"redirect_uri"
,
"http://www.sharesdk.cn"
)
;
ShareSDK
.
setPlatformConfig
(
PlatformType
.
SinaWeibo
,
sinaWeiboConf
)
;
|
注意:其中配置社交平台信息中的配置项说明,请参考《社交平台配置项说明》文档。
分享内容,先构造分享内容结构,代码如下:
|
Hashtable
content
=
new
Hashtable
(
)
;
content
[
"content"
]
=
"this is a test string."
;
content
[
"image"
]
=
"http://img.baidu.com/img/image/zhenrenmeinv0207.jpg"
;
content
[
"title"
]
=
"test title"
;
content
[
"description"
]
=
"test description"
;
content
[
"url"
]
=
"http://sharesdk.cn"
;
content
[
"type"
]
=
Convert
.
ToString
(
(
int
)
ContentType
.
News
)
;
content
[
"siteUrl"
]
=
"http://sharesdk.cn"
;
content
[
"site"
]
=
"ShareSDK"
;
content
[
"musicUrl"
]
=
"http://mp3.mwap8.com/destdir/Music/2009/20090601/ZuiXuanMinZuFeng20090601119.mp3"
;
|
然后将内容传入分享接口:
|
ShareResultEvent
evt
=
new
ShareResultEvent
(
ShareResultHandler
)
;
ShareSDK
.
showShareMenu
(
null
,
content
,
100
,
100
,
MenuArrowDirection
.
Up
,
evt
)
;
|
其中shareResultHandler为回调方法,其定义如下:
|
void
ShareResultHandler
(
ResponseState
state
,
PlatformType
type
,
Hashtable
shareInfo
,
Hashtable
error
,
bool
end
)
{
if
(
state
==
ResponseState
.
Success
)
{
print
(
"share result :"
)
;
print
(
MiniJSON
.
jsonEncode
(
shareInfo
)
)
;
}
else
if
(
state
==
ResponseState
.
Fail
)
{
print
(
"fail! error code = "
+
error
[
"error_code"
]
+
"; error msg = "
+
error
[
"error_msg"
]
)
;
}
}
|
用户授权调用SDK中的authorize方法可进行用户授权。代码如下:
|
AuthResultEvent
evt
=
new
AuthResultEvent
(
AuthResultHandler
)
;
ShareSDK
.
authorize
(
PlatformType
.
SinaWeibo
,
evt
)
;
|
其中authResultHandler为回调方法,其定义如下:
|
void
AuthResultHandler
(
ResponseState
state
,
PlatformType
type
,
Hashtable
error
)
{
if
(
state
==
ResponseState
.
Success
)
{
print
(
"success !"
)
;
}
else
if
(
state
==
ResponseState
.
Fail
)
{
print
(
"fail! error code = "
+
error
[
"error_code"
]
+
"; error msg = "
+
error
[
"error_msg"
]
)
;
}
}
|
获取用户资料,调用SDK中的getUserInfo方法可获取授权用户信息。代码如下:
|
GetUserInfoResultEvent
evt
=
new
GetUserInfoResultEvent
(
GetUserInfoResultHandler
)
;
ShareSDK
.
getUserInfo
(
PlatformType
.
SinaWeibo
,
evt
)
;
|
其中getUserResultHandler为回调方法,其定义如下:
1
2
3
4
5
6
7
8
9
10
11
12
|
void
GetUserInfoResultHandler
(
ResponseState
state
,
PlatformType
type
,
Hashtable
user
,
Hashtable
error
)
{
if
(
state
==
ResponseState
.
Success
)
{
print
(
"get user result :"
)
;
print
(
MiniJSON
.
jsonEncode
(
user
)
)
;
}
else
if
(
state
==
ResponseState
.
Fail
)
{
print
(
"fail! error code = "
+
error
[
"error_code"
]
+
"; error msg = "
+
error
[
"error_msg"
]
)
;
}
}
|
iOS部分集成步骤(不发布到iOS平台可略过此部分)
修改ShareSDKUnity3DBridge.m文件
对于需要使用SSO(QQ空间、人人网、腾讯微博)或者部分需要客户端分享的平台(包括:微信、易信、Pinterest、Google+、QQ)。请确认相对应的宏是否定义,如集成微信,则开启__SHARESDK_WECHAT__。其他平台同理,如下图:

修改完成后可以导出XCode项目。
注意:以下步骤需要在导出XCode项目后进行。
将iOS版本的ShareSDK导入到工程中。

将ShareSDK目录拷贝到导出的XCode项目中。如图:

- 将ShareSDK导入工程中,并添加相应的依赖库。此步骤可以参考:《iOS快速集成指南》中的第一、第二步。执行完成后,如下图所示:

修改AppController文件
打开AppController.mm文件,添加ShareSDK.h头文件:
|
#import <ShareSDK/ShareSDK.h>
|
新增handleOpenURL的处理方法,代码如下:
|
-
(
BOOL
)
application
:
(
UIApplication
*
)
application
handleOpenURL
:
(
NSURL
*
)
url
{
return
[
ShareSDK
handleOpenURL
:url
wxDelegate
:nil
]
;
}
-
(
BOOL
)
application
:
(
UIApplication
*
)
application
openURL
:
(
NSURL
*
)
url
sourceApplication
:
(
NSString
*
)
sourceApplication
annotation
:
(
id
)
annotation
{
return
[
ShareSDK
handleOpenURL
:url
sourceApplication
:sourceApplication
annotation
:annotation
wxDelegate
:nil
]
;
}
|
添加URL Scheme
对于需要客户端分享平台和SSO授权平台,需要添加URL Scheme。客户端分享请参考《iOS快速集成指南》中的可选部分。SSO配置请参考《iOS配置SSO授权》
Android部分集成步骤(不发布到Android平台可略过此部分)
1、当您将项目中的Unity3dDemo/Assets/Plugins目录拷贝到您的项目的Assets目录中,或双击sharesdk-unity3d-plugin.unitypackage导入相关文件时,已经将ShareSDK的快速集成到了您的项目中。
注意:直接复制Plugins文件夹时,包含了libs/demo.jar这个文件,按本集成步骤时,请先删除它。另外可能会覆盖了您原来的文件,请酌情处理。

其中的OneKeyShare.jar包是“一键分享”功能,里面包含了ShareSDKUtils类,它是您项目中C#代码和ShareSDK沟 通的桥梁,OneKeyShare.jar打包自Android_Java_Demo演示项目的cn.sharesdk.onekeyshare和 cn.sharesdk.unity3d这两个包。
注意: demo.jar包含了属于您自己创建的java文件,所以不能把gen下载的R.java,BuildConfig.java导出来,否则会造成OneKeyShare包UI混乱。如图:

2、ShareSDK预处理
方法一:请打开您继承自UnityPlayerActivity的类,在其onCreate方法中添加一行 ShareSDKUtils.prepare(this.getApplicationContext());,如下图:

方法二:在AndroidManifest.xml的application标签添加 android:name=”cn.sharesdk.unity3d.ShareSDKApplication”,如图:

3、Plugins目录中的ShareSDK.cs是供Unity3D开发者调用的接口,此类会将请求分发给ios或android,通过这两个平台的不 同实现代码,调用ShareSDK的功能,ShareSDK.cs挂接到您的GameObject上,在GameObject的Start方法中添加如下 代码:

其中的“Main Camera”是GameObject的名称。
4、在打算调用ShareSDK的地方使用与如下类似的代码:

其 中的AuthResultEvent、GetUserInfoResultEvent和ShareResultEvent是“授权”、“获取资料”和“分 享”操作的回调,如果不需要回调,可以设置为null。而AuthResultHandler、GetUserInfoResultHandler和 ShareResultHandler是回调事件的委托方法,当回调不为null时,需要在您的脚本中实现这三个方法,用于处理自定义的操作响应。