Unity使用 ShareSDK 分享Android篇
前言
在Unity中使用ShareSDK进行分享时,部分分享功能需要一些特殊设置。本文将详细介绍操作步骤,其中还会涉及截屏分享的实现。
一、下载ShareSDK
访问 http://mob.com/#/index 下载ShareSDK的Demo例子。下载完成后,将 Plugin 目录下的所有文件复制到自己的Unity项目中。同时,拷贝 Demo.cs 文件,方便后续修改。导入完成后,随便打开一个场景。
二、脚本修改
将 Demo 脚本挂载到 Main Camera 相机上,然后打开 Demo.cs 脚本进行如下修改:
1. 修改ShareSDK挂载对象
(原文未详细说明修改方式,需补充具体修改内容)
2. 修改ShareDK注册的App Key
复制App Key并修改脚本。本文仅演示QQ、QQ空间、微信、微信朋友圈和新浪微博的分享。
在 OnGUI 脚本中,仅保留名为 Show Share Menu 的GUI按钮事件,其他事件可根据个人需求删除。当点击该按钮时,脚本如下:
#if UNITY_ANDROID
// 截屏进行分享
string timer = Time.time.ToString();
Application.CaptureScreenshot(timer + ".png");
content["image"] = Application.persistentDataPath + "/" + timer + ".png";
#endif
content["title"] = "我的分享标题";
content["content"] = contentMessage; // 分享的内容
content["description"] = "分享的详细描述";
content["url"] = "http://www.baidu.com"; // 分享内容中包含的链接
content["type"] = Convert.ToString((int)ContentType.News);
content["siteUrl"] = "http://www.baidu.com"; // 点击分享内容跳转的网址
content["site"] = "ShareSDK"; // 链接到网站的名称
// content["musicUrl"] = "http://mp3.mwap8.com/destdir/Music/2009/20090601/ZuiXuanMinZuFeng20090601119.mp3";
// 开启,调用客户端授权 (only in android)
content["disableSSOWhenAuthorize"] = false;
content["shareTheme"] = "classic"; // ShareTheme has only two value which are skyblue and classic
ShareResultEvent evt = new ShareResultEvent(ShareResultHandler);
ShareSDK.showShareMenu(null, content, 0, 0, MenuArrowDirection.Down, evt);
三、配置
打开项目目录下的 ShareSDK.xml 配置文件。这里需要将包名设置为自己项目的包名。
对于微信回调函数,需要设置成如下形式:.wxapi.UnityPlayerActivity。因为在将项目导入到Eclipse时,微信分享需要回调才能正常工作,否则在微信分享后返回应用程序会报错退出。详细内容请参考 http://bbs.mob.com/forum.php?mod=viewthread&tid=55&extra=page%3D1%26filter%3Dtypeid%26typeid%3D35。
四、微信App Key申请
访问 http://bbs.mob.com/forum.php?mod=viewthread&tid=275&page=1&extra=#pid860,找到微信开放平台地址。若已有微信开放平台账户,直接登录;若没有,则注册一个。点击管理中心,然后点击创建平台应用。
微信的详细申请流程请参考 http://bbs.mob.com/thread-95-1-4.html。这里提供分享签名获取工具地址:http://pan.baidu.com/s/1pJtbN7P,密码:mh72。
需要注意的是,微信申请需要通过审核才能进行微信分享。若未通过审核,请耐心等待。即使未通过审核,使用Unity打包Android程序也可以进行其他平台的分享,但微信对个人分享可能无法正常工作,或者分享成功后返回应用程序会崩溃,此时需要到Eclipse进行配置。
另外,微信开放平台的应用签名需要特别留意,因为Unity的签名和打包到Eclipse后的签名不同,Eclipse打包出来的Android程序签名会改变,具体以哪个签名为准,需自行决定。
五、Eclipse 设置
若微信申请已通过审核,首先在Unity中修改相关内容,将其修改为自己申请下来的微信AppId和AppSecret。然后将项目打包到Eclipse,导入Unity打包出来的Android项目,将导出的所有文件导入到Eclipse项目中。详细内容请参考 http://bbs.mob.com/forum.php?mod=viewthread&tid=55&extra=page%3D1%26filter%3Dtypeid%26typeid%3D35。最后发布项目即可。