上周在unitiy工程中接入了sharesdk,按照sharesdk官方给出的教程一步一步做下来,发现还是会存在很多问题,今天周末,闲来无事简单整理下,本人毕业半年编程经验不足,文中定会有许多错误和疏漏,还请各位批评指正,共同学习。 不建议各位直接按照我的这篇文章接入sharesdk微信分享,我写的比较没有条理,首先还请按照官方教程接入,如遇到困难可对照本文中特别提到的几点进行查看。
首先在unity中建一个简单的工程其其中share按钮用来分享,下面的label用来在真机测试是显示回调信息。接下来去sharesdk官网下载unity版本的sdk,下载之后打开其中的unity3dDemo,将项目中的Unity3dDemo/Assets/Plugins目录拷贝到项目的Assets中,或双击将项目中的sharesdk-unity3d-plugin.unitypackage导入项目中,但是在实际工程中可能在Plugins目录下已经有了其他文件,导入package可能会将原项目文件覆盖,一定要慎重。然后将Plugins内sharesdk.cs文件挂载到Main Camera上,也可以放到其他物体上,但是要在初始化ShareSDK. setCallbackObjectName设置回调对象名称。初始化sharesdk及社交平台 [csharp] view plaincopy
- //初始化sharesdk
- ShareSDK.setCallbackObjectName("Main Camera");//挂载物体的名称
- ShareSDK.open ("530507a14de4");//此处千万注意,填写你在sharesdk后台申请的appid,由于官方教程没注明,我在这研究了一天
-
- //WeChat
-
- Hashtable wcConf = new Hashtable();
- wcConf.Add ("app_id", "wxf5a37a867c0fb640");//此处时你在微信平台申请的appid
- ShareSDK.setPlatformConfig (PlatformType.WeChatSession, wcConf);
- ShareSDK.setPlatformConfig (PlatformType.WeChatTimeline, wcConf);
- ShareSDK.setPlatformConfig (PlatformType.WeChatFav, wcConf);
接下来在代码中构造分享内容[csharp] view plaincopy
- public void ShowShareMenu(){
- Hashtable content = new Hashtable();
- content["content"] = "this is a test string.";
- content["image"] = Application.persistentDataPath+"/Screenshot.png";
- content["title"] = "title";
- content["description"] = "description";
- content["url"] = "http://www.baidu.com";
- 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";
- print ("OK");result = "OK";
- //将内容传入分享接口
- ShareResultEvent evt = new ShareResultEvent(ShareResultHandler);
- ShareSDK.showShareMenu (null, content, 100, 100, MenuArrowDirection.Up, evt);
- }
此处我介绍下各字段含义(我问的sharesdk客服,字段错误也会不能正常分享,可以看上面我的例子):content是文本内容 image分享的图片(我是用的截屏,所以是路径apk安装的文件目录,此处可以用网络连接) title标题 description 是描述 只有部分平台能用到 url是链接(要写外网能打开的完整的链接,另外腾讯平台禁用端口号的链接) type分享类型 一般默认news就行 sitUrl和site是空间用的。
接着打开Assets/Plugins/Android/asset目录下的ShareSDK.xml 然后各位自习阅读下说明,说明中有几个比较重要的地方:AppKey = "ddd"/> <!-- 修改成你在sharesdk后台注册的应用的appkey"—> 还有就是各平台的appid和appsecret要在这里填写。友情提示:sharesdk集成的社交平台非常多,我们一般不会用到全部,对于不使用的社交平台我们只需要将对应平台内的Enable字段设置为false即可。
本文只写微信部分各字段含义:首先Id和SortiID 这个没有什么必要,不需要管他,appid和appsecret需要把我们在微信平台申请到的填写进去。接下来BypassApproval是否绕过微信的审核,设置为true时候,分享的时候会绕过审核,但是只能分享文字和图片,不绕过审核可以分享链接。
接下来说一下keystore,在微信申请appid的时候会有一项是填写签名,此处一定要填写的MD5码,并且需要把冒号都去掉,把大写转成小写。md5如何获取呢,我们可以先在unity内申请签名,然后用这个签名打包出apk,将apk后缀改成rar解压,解压后找到META-INF文件夹,文件夹内有个CERT.RSA。 打开终端执行keytool -printcert -file /Users/admin/Desktop/hello11/META-INF/CERT.RSA (file后是路径,可以直接把那个文件拖进终端,不需要费事的自己写路径)执行后会看到
复制下MD5值,随便写个字符串转化函数private string lll = "";print (lll.ToLower().Replace(":",""));就能得到了,然后把转化后得到的字符串填写到微信后台就可以了。
以上都没有错误的话,调用那个showsharemenu函数就可以分享了。(测试手机没带回来,我就不传最后效果图啦)恳请各位批评指正。
PS:本人第一次写博客,写的有点乱,只是想把自己工作中遇到的困难记录下,希望以后不会犯同样错误,也希望能对还在sharesdk微信分享坑中的各位提供点微薄的帮助(sharesdk微信好像是最麻烦的),我在研究的时候没找到完整的教程,着实是苦逼……
|