最近公司的大厅要重做,我协助主程一起制作新大厅和新框架,前面制作的编辑器也派上了用场。等全部功能做完后我会再写一个复盘,这两天主程在忙于写热更新的功能,所以把接入分享SDK功能的任务交给了我,ShareSDK官网的文档比较分散,而且关于Unity的文档比较简略,所以还是有不少的坑。写篇博客分享一下,并加强理解记忆。

  第一步,先去ShareSDK的官网下载最新版本的ShareSDK(完全免费)。地址:http://www.mob.com/

  我们选择ShareSDK For Unity3D,页面会直接跳转到GitHub,把最新版本的压缩包下载回来。

  

解压后会得到这个目录,使用Unity打开下面的文件夹可以看到官方的Demo项目。里面有大致的实现流程

初步接入SDK还是可以参照官方的文档,真的非常简单。文档地址:http://wiki.mob.com/Unity3D%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E6%8C%87%E5%8D%97/

我们直接把ShareSDK For U3D导进项目

首先我们要在官网注册一个账号,然后点击进入后台,创建一个新工程,再添加产品-选择ShareSDK。

这样我们就有了一个AppKey和一个AppSecret,把他们输入你Unity中挂载在物体上的ShareSDK脚本上

这时候我们会发现DevInfo下面会有很多的平台,我们进入ShareSDKDevInfo,把你不需要的平台注释掉或者删掉

以前的版本在这里注释掉,游戏中呼出菜单就不会再出现这些平台了,但是现在还需要再做一步,这个留到下文会讲到。

有些平台下面会有一个叫做BypassApproval的选项,这是绕过验证的意思,如果我们开启了这个bool那么就只能分享图文,功能不全。但是不需要账号就可以分享,如果我们想需要使用分享链接之类的更全面的功能,则需要关闭这个选项,但是这就需要另一个条件。

那就是除了ShareSDK的账号,我们想在哪个平台进行分享还要有这个平台的开发者账号,以微信平台为例,我们要现在微信开放平台申请一个账号

地址:https://open.weixin.qq.com/

注册完账号后可以创建一个移动应用。这里有一点值得提一下,关于应用签名,可以在网上下载一个获得签名的软件,把游戏和这个软件都装到手机上然后获取一下你的游戏的签名就可以了。

https://open.weixin.qq.com/cgi-bin/readtemplate?t=resource/app_download_android_tmpl&lang=zh_CN 在这里下载需要的获取签名软件

等待微信审核通过后你的应用会有一个AppID和一个AppSecret。把它填到Unity中ShareSDK脚本中

到了这一步,配置算是完成了一半了。根据官网的文档我们可以用ShareSDK创建实例,然后给它赋值,给它添加回调

ssdk.ShowPlatformList可以呼出平台UI面板,让你选择平台,这时候你会发现怎么注释掉的平台还是全都显示出来了。不知道这个是不是BUG,但是是有办法解决的。

这时把项目的包名改成和微信开放平台一致后,打出的包应该可以成功进行分享了,可是你很快就会发现,程序并没有走回调,这是为毛呢?

我们打开项目目录下\Plugins\Android\ShareSDK的AndroidManifest.xml配置文件,首先把最顶上的package = 改成和微信开放平台还有项目都一致的包名。拉下来我们会看到一个微信分享回调的配置,在原先的.wxapi.WXEntryActivity前面加上你的包名

这还不算完,因为配置文件里的包名改变了但是Jar包的Package的名称并没有改,这时候我们需要去下载一个Eclipse。好在博主懂一些JAVA

Eclipse还是很好用的,我们下载回来后使用它打开我们从GitHub下载过来的ShareSDK压缩包中的那个Android_Java_Demo文件夹,这是一个光放的安卓的Demo项目,

在Src中找到我们的wxapi包,右键Refactor->Rename,把它改成我们项目中的包名.wxapi然后在src上右键Export选择Java里的JAR file。

点击Nex在左上角把我们刚刚重命名过的包打上勾(需要几个打几个)把Jar包命名为DemoCallback.jar

然后我们进入项目的\Plugins\Android\ShareSDK\libs目录,用刚刚生成的DemoCallback.jar包替换这里的老Jar包。前面说的平台会全部显示出来的问题,只需要在这个目录删掉不需要使用的平台jar包即可。注意不要删掉sharesdk core的jar包

这时我们再打包运行发现可以正常使用回调了。如果有问题的话检查一下包名签名等。签名的问题我们可以打包的时候用Unity创建一个KeyStore设置好密码,以后生成别的包可以直接使用。生成keystore可以参考这里:http://www.cnblogs.com/heisaijuzhen/p/4346571.html

这时候我们使用的是ShareSDK自带的平台选择UI,如果想使用自己的UI可以使用无UI分享,自己在按钮上注册调用分享功能的实现,具体实现步骤没有太大区别只需要把这里最后的ShowPlatformList换为ShowShareContentEditor传入需要的平台和设置好的分享内容即可直接跳转到分享平台

到这里也就完毕了,IOS的话我现在没有MAC用还不好说,但是大致的流程都有了,也就是踩一踩坑的事了,有不懂的地方大家可以互相交流

在Unity3D项目中接入ShareSDK实现安卓平台微信分享功能(可使用ShareSDK默认UI或自定义UI)的更多相关文章

  1. Nacos(四):SpringCloud项目中接入Nacos作为配置中心

    前言 通过前两篇文章: Nacos(二):Nacos与OpenFeign的对接使用 Nacos(三):SpringCloud项目中接入Nacos作为注册中心 相信大家已经对Nacos作为注册中心的基本 ...

  2. AndroidStudio用微信官方方法接入微信分享功能

    转载请注明出处:http://www.cnblogs.com/wangoublog/p/5367950.html 现在微信的功能众所周知,用户量.影响力也是惊人,很多应用接入微信的功能已成为一种不可缺 ...

  3. android APP 中微信分享功能实现 的总结

    //花了很长时间最终完成了微信分享功能,中间走了很多弯路,在此做一下小结,希望对在应用中使用到微信分享的朋友有所帮助. 主要问题就是下面两个: 1.为什么运行了项目之后,微信分享只是闪了一下就没有了? ...

  4. 如何正确的在项目中接入微信JS-SDK

    微信JS-SDK的功能 如果你点进来,那么我相信你应该知道微信的JS-SDK可以用来做什么了.微信的官方文档描述如下. 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. ...

  5. unity3D项目中如何避免硬代码(C#)

    平时做项目,代码中是不允许出现硬代码的,一般我们是怎么处理的呢? 那么硬代码又是什么呢? 我们俗称的硬代码:eg:   label.text = "欢迎来到梦幻岛";  这样我们俗 ...

  6. Nacos(二):SpringCloud项目中接入Nacos作为注册中心

    前言 通过上一篇文章:Nacos介绍简单了解了Nacos的发展历程和现状,本文我们开始Nacos试水的第一步: 使用Nacos做注册中心 上周末(7.6)Nacos发布了V1.1.0版本,这次更新支持 ...

  7. 在ASP.NET项目中使用CKEditor +CKFinder实现图片上传功能

    前言 之前的项目中一直使用的是FCKeditor,昨天突然有个想法:为什么不试一下新的CKEditor呢?于是花了大半天的时间去学习它的用法,现在把我的学习过程与大家分享一下. 谈起FCKeditor ...

  8. 【Android进阶】使用第三方平台ShareSDK实现新浪微博的一键分享功能

    在公司最近的一个项目中,需要实现一键分享功能,在这里我使用的是第三方平台ShareSDK,将使用经验与大家分享 先看效果图 主界面 分享界面 由于第一次使用,所以需要先进行新浪授权,授权界面 分享结果 ...

  9. 在Android中使App高速、简单地支持新浪微博、微信、QQ、facebook等十几个主流社交平台的分享功能

    前言 在如今的APP或者游戏中,分享功能差点儿已经成为标配.分享功能不但能够满足用户的需求.也能够为产品带来很多其它的用户,甚至能够对用户的行为.活跃度.年龄段等情况进行数据统计,使得软件公司能够对产 ...

随机推荐

  1. div+css的属性

    div+css的属性 gCascading Style Sheet 层叠式样式表 ==> 层叠样式表 Internal Style Sheet 内部样式表 External Style Shee ...

  2. Dojo初探之4:dojo的event(鼠标/键盘)事件绑定操作(基于dojo1.11.2版本)

    前言: 上一章详解了dojo的dom/query操作,本章基于dom/query基础上进行事件绑定操作 dojo的事件 dojo的事件绑定操作分为鼠标和键盘两种进行详解 1.鼠标事件 我们沿用上一章中 ...

  3. 搭建rtmp直播流服务之1:使用nginx搭建rtmp直播流服务器(nginx-rtmp模块的安装以及rtmp直播流配置)

    欢迎大家积极开心的加入讨论群 群号:371249677 (点击这里进群) 一.方案简要 首先通过对开发方案的仔细研究(实时监控.流媒体.直播流方案的数据源-->协议转换-->服务器--&g ...

  4. docker- 构建 oracle2c-r2(12.2.0.1) 的镜像

    需求 由于公司要数据库需要使用新的oracle版本(12c-r2 ->12.2.0.1),需要从之前的oracle11g迁移到12c.所以,我们今天就先来介绍一下如何构建oracle12c的镜像 ...

  5. 微信授权登录(PHP)

    微信授权登录(PHP) 微信授权 OAuth2.0授权 微信网页授权 主要是在项目中遇到网页授权登录这个需求,就对此做些总结记录. OAuth2.0授权 OAuth是一个开放协议,允许用户让第三方应用 ...

  6. Python os模块实例之遍历目录及子目录指定扩展名的文件

    需求:在该目录下有很多子目录(如下图,截图了部分),现要从该目录和所有子目录下找到所有扩展名为.meta的文件,并获取文件中第二行guid的值(': '后面的),然后将所有guid的值输出到另一文件中 ...

  7. Qt中的View Model模型

    原始日期: 2016-08-17 21:19 Qt中的View主要有三种QListView,QTreeView, QTabelView 而对应的Model是:QStringListModel, QAb ...

  8. 百度地图 js api 实现 line 居中显示

    项目中有个需求需要在百度地图的中心显示画的线,以前用过mapPanto这个方法,传入坐标就可以将地图平移到这个坐标,不过不知道如何获取线的中心点,看了别人的代码,有以下两个函数可以实现这个功能 get ...

  9. 基于TFS的.net技术路线的云平台DevOps实践

    DevOps是近几年非常流行的系统研发管理模式,很多公司都或多或少在践行DevOps.那么,今天就说说特来电云平台在DevOps方面的实践吧. 说DevOps,不得不说DevOps的具体含义.那么,D ...

  10. java当中成员变量和局部变量的区别

    1:成员变量定义在类中,整个类中都可以访问.2:局部变量定义在函数,语句,局部代码块中,只在所属的区域有效.3:成员变量存在于堆内存的对象中.4:局部变量存在于栈内存的方法中.5:成员变量随着对象的创 ...