ShareSDK在Unity3D快速集成指南

http://wiki.mob.com/Unity3D%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E6%8C%87%E5%8D%97


Unity3D快速集成指南

目录

通用部分集成步骤

下载ShareSDK的Unity3D工具类

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

挂接ShareSDK脚本

打开Plugins目录,将ShareSDK.cs脚本文件拖动到Main Camera对象中进行脚本挂接。

u3d doc 001.png

注意:如果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,  100100, 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为回调方法,其定义如下:

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__。其他平台同理,如下图:

u3d doc 002.png

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

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

将iOS版本的ShareSDK导入到工程中。

  • 登录ShareSDK的官方网站下载并解压最新版本的SDK。如果您还尚未下载,请 点击这里下载 或者访问 http://sharesdk.cn/Download 。解压后如下图:

u3d doc 003.png

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

u3d doc 004.png

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

u3d doc 005.png

修改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这个文件,按本集成步骤时,请先删除它。另外可能会覆盖了您原来的文件,请酌情处理。

20140909161050.png
其中的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混乱。如图:
a.jpg

2、ShareSDK预处理
方法一:请打开您继承自UnityPlayerActivity的类,在其onCreate方法中添加一行 ShareSDKUtils.prepare(this.getApplicationContext());,如下图:
b.png 
方法二:在AndroidManifest.xml的application标签添加 android:name="cn.sharesdk.unity3d.ShareSDKApplication",如图:
c.png 

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

u3d doc 009.png

其中的“Main Camera”是GameObject的名称。

4、在打算调用ShareSDK的地方使用与如下类似的代码:

u3d doc 010.png

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


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值