【Android 分享】ShareSDK微信分享详解
2015-08-14 00:44
706 查看
目前市面上大大小小的软件,几乎都支持分享的功能,前几天在做的项目中也有此功能,使用的ShareSDK来实现的微信分享功能,下面就跟着我来一步步实现微信分享吧!
ShareSDK介绍:ShareSDK官网,Mob移动开发者服务平台,为全球移动开发者提供社会化分享SDK、手游视频录像SDK、免费手机短信验证码SDK,BigApp掌上社区等服务。
1.在ShareSDK注册个账户,进入创建应用的界面:
![](http://img.blog.csdn.net/20150813233918276)
点击创建应用按钮
2.输入自己的应用名称,选择开发平台(以Android为例)
![](http://img.blog.csdn.net/20150813234034930)
3.点击确定,进入后台管理界面,此时已经生成了该应用的App Key和App Secret,这是后面分享必须的。
![](http://img.blog.csdn.net/20150813234238420)
注:此时在ShareSDK配置已经完成,下面需要到各自分享的平台去申请对应的AppId和AppSecret。
4.进入微信开放平台,点击顶部的管理中心按钮
![](http://img.blog.csdn.net/20150813235058556)
5.填写应用信息
![](http://img.blog.csdn.net/20150813235130288)
![](http://img.blog.csdn.net/20150813235139812)
6.下一步,接着填写信息
![](http://img.blog.csdn.net/20150813235234866)
![](http://img.blog.csdn.net/20150813235521550)
这里详细介绍一下签名,此处填写的签名必须和应用发布时的签名保持一致才可以分享,为了保持一致,此处的签名可以这样来产生:
使用命令来生成签名文件,命令如下:keytool -genkey -alias demo.keystore -keyalg RSA -validity 20000 -keystore demo.keystore,cmd命令行直接执行就可以了,至于输入的内容,记住密匙库口令,也就是密码,重复输入两次,输入的过程不会显示!
![](http://img.blog.csdn.net/20150814000302264)
此时在你执行命令的目录就会生成一个签名文件demo.keystore
![](http://img.blog.csdn.net/20150814000351536)
右键工程–Export
![](http://img.blog.csdn.net/20150814000458491)
next—找到你的签名文件—输入生成签名文件时的密码
![](http://img.blog.csdn.net/20150814000705951)
![](http://img.blog.csdn.net/20150814000729963)
![](http://img.blog.csdn.net/20150814000903708)
![](http://img.blog.csdn.net/20150814000918081)
上面这个图才是关键,看到Certificate fingerprints下有个MD5,咱们要的就是这个,记住这个,就是微信验证时输入的应用签名
![](http://img.blog.csdn.net/20150814001148219)
把上面的md5那一串数字和字母输入在上图的应用签名一栏就可以了!!!
7.提交审核就Ok了,耐心等待,说是7天内,一般一两天就审核通过了!
![](http://img.blog.csdn.net/20150813235243423)
8.过个一两天应用审核通过,在管理中心可以看到应用已经审核通过。
![](http://img.blog.csdn.net/20150814001406267)
9.点击查看,可进入应用后台管理页面,可以看到,已经生成了我们分享所需要的AppId和AppSecret.
![](http://img.blog.csdn.net/20150814001613946)
10.下面就是代码实现分享功能了,我们一步步来看,首先看一下工程结构图,在libs目录下导入分享所需要的jar包,在assets目录下,复制ShareSDK.xml,这是分享的配置文件,至于如何获取jar和ShareSDK.xml,请点击:Android快速集成指南。
![](http://img.blog.csdn.net/20150814001814403)
11.打开ShareSDK.xml文件,输入shareSdk的APPKey,和已经在微信开放平台申请到的APPID和AppSecret。
![](http://img.blog.csdn.net/20150814002337007)
![](http://img.blog.csdn.net/20150814002346312)
12.代码实现分享功能,首先在onCreate方法中初始化ShareSDK。
13.封装分享的方法,微信支持四种分享类型,文本,图片,音乐,网页。
14.此处测试的是分享网页,分享网页的方法如下:
15.具体的分享调用
16.分享完成,测试
![](http://img.blog.csdn.net/20150814003809084)
分享成功
![](http://img.blog.csdn.net/20150814003840560)
Android技术交流群,群号为204368065,欢迎各位Androider加入,共同探讨技术问题,共同进步,也可以扫码申请接入哦
ShareSDK介绍:ShareSDK官网,Mob移动开发者服务平台,为全球移动开发者提供社会化分享SDK、手游视频录像SDK、免费手机短信验证码SDK,BigApp掌上社区等服务。
1.在ShareSDK注册个账户,进入创建应用的界面:
点击创建应用按钮
2.输入自己的应用名称,选择开发平台(以Android为例)
3.点击确定,进入后台管理界面,此时已经生成了该应用的App Key和App Secret,这是后面分享必须的。
注:此时在ShareSDK配置已经完成,下面需要到各自分享的平台去申请对应的AppId和AppSecret。
4.进入微信开放平台,点击顶部的管理中心按钮
5.填写应用信息
6.下一步,接着填写信息
这里详细介绍一下签名,此处填写的签名必须和应用发布时的签名保持一致才可以分享,为了保持一致,此处的签名可以这样来产生:
使用命令来生成签名文件,命令如下:keytool -genkey -alias demo.keystore -keyalg RSA -validity 20000 -keystore demo.keystore,cmd命令行直接执行就可以了,至于输入的内容,记住密匙库口令,也就是密码,重复输入两次,输入的过程不会显示!
此时在你执行命令的目录就会生成一个签名文件demo.keystore
右键工程–Export
next—找到你的签名文件—输入生成签名文件时的密码
上面这个图才是关键,看到Certificate fingerprints下有个MD5,咱们要的就是这个,记住这个,就是微信验证时输入的应用签名
把上面的md5那一串数字和字母输入在上图的应用签名一栏就可以了!!!
7.提交审核就Ok了,耐心等待,说是7天内,一般一两天就审核通过了!
8.过个一两天应用审核通过,在管理中心可以看到应用已经审核通过。
9.点击查看,可进入应用后台管理页面,可以看到,已经生成了我们分享所需要的AppId和AppSecret.
10.下面就是代码实现分享功能了,我们一步步来看,首先看一下工程结构图,在libs目录下导入分享所需要的jar包,在assets目录下,复制ShareSDK.xml,这是分享的配置文件,至于如何获取jar和ShareSDK.xml,请点击:Android快速集成指南。
11.打开ShareSDK.xml文件,输入shareSdk的APPKey,和已经在微信开放平台申请到的APPID和AppSecret。
12.代码实现分享功能,首先在onCreate方法中初始化ShareSDK。
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化ShareSDK ShareSDK.initSDK(MainActivity.this); initView(); }
13.封装分享的方法,微信支持四种分享类型,文本,图片,音乐,网页。
/** * 方法名称:xinWeiShare * <p>方法描述:微信分享 * @param isWeiXin true为微信 false为微信朋友圈 * @param handler 分享界面回调 不能为空 * @param context 分享界面mContext * @param type 分享类型 如:Platform.SHARE_TEXT,Platform.SHARE_IMAGE,Platform.SHARE_MUSIC,Platform.SHARE_WEBPAGE * @param args 分享类型 如Platform.SHARE_TEXT(微信文本类型) 必须传入 两个参数(不能少传,也不能多传) :第一个为标题 * 第二个为分享内容 * * 分享类型 如Platform.SHARE_IMAGE(微信图片类型) 必须传入 两个参数(不能少传,也不能多传):第一个为标题 * 第二个为分享图片 URL地址 或者 手机文件地址 * * 分享类型 如Platform.SHARE_MUSIC(微信音乐分享) 必须传入 五个参数(不能少传,也不能多传):第一个为标题 * 第二个为分享内容 * 第三个为分享图片地址 URL地址 或者 手机文件地址 * 第四个为分享音乐地址(必须携带http:// 或者 https://) * 第五个为分享音乐详细地址(必须携带http:// 或者 https://) * * 分享类型 如Platform.SHARE_WEBPAGE(微信网页链接分享) 必须传入四个参数(不能少传,也不能多传): 第一个为标题 * 第二个为分享内容 * 第三个为分享网页图片地址 URL地址 或者 手机文件地址 * 第四个为分享网页的地址 (必须携带http:// 或者 https://) * <p>备注: */ public void weiXinShare(boolean isWeiXin, Handler handler, Context mContext, int type, String... args) { switch (type) { case Platform.SHARE_TEXT: if (null != handler) { this.mHandler = handler; weixinTxtShare(isWeiXin, mContext, args); } //微信文本分享 break; case Platform.SHARE_IMAGE: //微信图片分享 if (null != handler) { this.mHandler = handler; weiXinImgShare(isWeiXin, mContext, args); } break; case Platform.SHARE_MUSIC: //分享音乐 if (null != handler) { this.mHandler = handler; weixinMusicShare(isWeiXin, mContext, args); } break; case Platform.SHARE_WEBPAGE: //分享网页 if (null != handler) { this.mHandler = handler; weiXinWebShare(isWeiXin, mContext, args); } break; default: break; } }
14.此处测试的是分享网页,分享网页的方法如下:
/** * 方法名称:xinweiWebShare * <p>方法描述:网页分享 * <p>备注: */ private void weiXinWebShare(boolean isWeixin, Context mContext, String... args) { if (null == mContext || args.length < SHARE_WEB_MIN_LEN) { MainApplication.getIns().tip("分享失败"); return; } else { this.context = mContext; for (int i = 0; i < args.length; i++) { String str = args[i]; if (TextUtils.isEmpty(str) && i != 2) { MainApplication.getIns().tip("分享失败"); return; } } String title = args[0]; String text = args[1]; String image = args[2]; String url = args[3]; WechatHelper.ShareParams sp = null; if (isWeixin) { sp = new Wechat.ShareParams(); } else { sp = new WechatMoments.ShareParams(); } sp.title = title; if (TextUtils.isEmpty(image)) { sp.imageData = ((BitmapDrawable)context.getResources().getDrawable(R.drawable.logo_mingdao)).getBitmap(); } else if (image.contains("http://") || image.contains("https://")) { sp.imageUrl = image; } sp.text = text; if (url.contains("http://") || url.contains("https://")) { sp.url = url; } sp.setShareType(Platform.SHARE_WEBPAGE); Platform plat = null; if (isWeixin) { plat = ShareSDK.getPlatform(Wechat.NAME); } else { plat = ShareSDK.getPlatform(WechatMoments.NAME); } plat.setPlatformActionListener(listener); plat.share(sp); } }
15.具体的分享调用
/** * 方法名称:weixinShare * 方法描述:微信分享 */ private void weixinShare() { String shareContentTxt = "我是来自Android客户端分享实例Demo的数据"; String sharklink = "http://user.qzone.qq.com/1039163285/infocenter?ptsig=*Sb6sER-9smBstwyL28cYg2h0D99pYGcPvoySuzkGyc_"; ShareUtil.getInstance().weiXinShare(true, mHandler, this, Platform.SHARE_WEBPAGE, "Note客户端分享", shareContentTxt, "", sharklink); } /** * 方法名称:weixinQuanShare * 方法描述:微信朋友圈分享 */ private void weixinQuanShare() { String shareContentTxt = "我是来自Android客户端分享实例Demo的数据,如果您看到此条数据,可以选择忽略它!"; String sharklink = "http://user.qzone.qq.com/1039163285/infocenter?ptsig=*Sb6sER-9smBstwyL28cYg2h0D99pYGcPvoySuzkGyc_"; ShareUtil.getInstance().weiXinShare(false, mHandler, this, Platform.SHARE_WEBPAGE, shareContentTxt, "Note客户端分享", "", sharklink); }
16.分享完成,测试
分享成功
Android技术交流群,群号为204368065,欢迎各位Androider加入,共同探讨技术问题,共同进步,也可以扫码申请接入哦
相关文章推荐
- 天下数据浅谈IDC行业如何做微信自媒体营销
- 用javascript语言编写一个小程序:在一个文本框(用户名框)中按回车键时,跳转到另一个文本框(密码框)中,密码框回车之后,打一个登陆成功。点击button也是登陆成功。
- 微信公众帐号开发教程
- iGrimace IG 1.44 V3 正版苹果ios 陌陌微信遇见Uber 优步 积分墙 igrimac3.0.0高级版
- 共享/出售即时通讯源代码,类似微信陌陌,全新定义基于Tiagse的社交聊天系统
- java小程序:小时钟
- 微信中网页插入视频
- 100条超实用微信营销技巧:公众号、朋友圈和微信营销
- 100条超实用微信营销技巧:公众号、朋友圈和微信营销
- js实现类似微信网页版在可编辑的div中粘贴内容时过滤剪贴板的内容,光标始终在粘贴内容后面,以及将光标定位到最后的方法
- Android 联系人字母排序(仿微信)
- 最新获取微信支付共享收货地址接口
- 微信内置浏览器submit函数无效的问题
- C#微信公众平台接入示例代码
- 微信内置浏览器 长按识别二维码 功能的两三个坑与解决方案
- 前端页面中iOS版微信长按识别二维码的bug与解决方案
- 用Chrome在电脑上模拟微信内置浏览器
- js如何判断用户是否是用微信浏览器
- Protocol buffer序列化及其在微信蓝牙协议中的应用
- Android仿微信联系人按字母排序