Android分享 ShareSDK微信分享详解
本文转载自: http://www.it165.net/pro/html/201508/50793.html
(只作转载, 不代表本站和博主同意文中观点或证实文中信息)
目前市面上大大小小的软件,几乎都支持分享的功能,前几天在做的项目中也有此功能,使用的ShareSDK来实现的微信分享功能,下面就跟着我来一步步实现微信分享吧!
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。
01.<code class="hljs java">@Override02.protected void onCreate(Bundle savedInstanceState)03.{04.super.onCreate(savedInstanceState);05.setContentView(R.layout.activity_main);06.//初始化ShareSDK07.ShareSDK.initSDK(MainActivity.this);08.initView();09.}</code>13.封装分享的方法,微信支持四种分享类型,文本,图片,音乐,网页。
01.<code class="hljs java"><code class="hljs java">/**02.* 方法名称:xinWeiShare03.* <p>方法描述:微信分享04.* @param isWeiXin true为微信 false为微信朋友圈05.* @param handler 分享界面回调 不能为空06.* @param context 分享界面mContext07.* @param type 分享类型 如:Platform.SHARE_TEXT,Platform.SHARE_IMAGE,Platform.SHARE_MUSIC,Platform.SHARE_WEBPAGE08.* @param args 分享类型 如Platform.SHARE_TEXT(微信文本类型) 必须传入 两个参数(不能少传,也不能多传) :第一个为标题09.* 第二个为分享内容10.* 11.* 分享类型 如Platform.SHARE_IMAGE(微信图片类型) 必须传入 两个参数(不能少传,也不能多传):第一个为标题12.* 第二个为分享图片 URL地址 或者 手机文件地址13.* 14.* 分享类型 如Platform.SHARE_MUSIC(微信音乐分享) 必须传入 五个参数(不能少传,也不能多传):第一个为标题15.* 第二个为分享内容16.* 第三个为分享图片地址 URL地址 或者 手机文件地址19.* 20.* 分享类型 如Platform.SHARE_WEBPAGE(微信网页链接分享) 必须传入四个参数(不能少传,也不能多传): 第一个为标题21.* 第二个为分享内容 22.* 第三个为分享网页图片地址 URL地址 或者 手机文件地址24.* <p>备注:25.*/26.public void weiXinShare(boolean isWeiXin, Handler handler, Context mContext, int type, String... args)27.{28.switch (type)29.{30.case Platform.SHARE_TEXT:31.if (null != handler)32.{33.this.mHandler = handler;34.weixinTxtShare(isWeiXin, mContext, args);35.}36.//微信文本分享37.break;38.case Platform.SHARE_IMAGE:39.//微信图片分享40.if (null != handler)41.{42.this.mHandler = handler;43.weiXinImgShare(isWeiXin, mContext, args);44.}45.break;46.case Platform.SHARE_MUSIC:47.//分享音乐48.if (null != handler)49.{50.this.mHandler = handler;51.weixinMusicShare(isWeiXin, mContext, args);52.}53.break;54.case Platform.SHARE_WEBPAGE:55.//分享网页56.if (null != handler)57.{58.this.mHandler = handler;59.weiXinWebShare(isWeiXin, mContext, args);60.}61.break;62.default:63.break;64.}65.}</code></code>14.此处测试的是分享网页,分享网页的方法如下:
01.<code class="hljs java"><code class="hljs java"><code class="hljs java">/**02.* 方法名称:xinweiWebShare03.* <p>方法描述:网页分享04.* <p>备注:05.*/06.private void weiXinWebShare(boolean isWeixin, Context mContext, String... args)07.{08.if (null == mContext || args.length < SHARE_WEB_MIN_LEN)09.{10.MainApplication.getIns().tip('分享失败');11.return;12.}13.else14.{15.this.context = mContext;16.for (int i = 0; i < args.length; i++)17.{18.String str = args[i];19.if (TextUtils.isEmpty(str) && i != 2)20.{21.MainApplication.getIns().tip('分享失败');22.return;23.}24.}25.String title = args[0];26.String text = args[1];27.String image = args[2];28.String url = args[3];29.WechatHelper.ShareParams sp = null;30.if (isWeixin)31.{32.sp = new Wechat.ShareParams();33.}34.else35.{36.sp = new WechatMoments.ShareParams();37.}38.sp.title = title;39. 40.if (TextUtils.isEmpty(image))41.{42.sp.imageData = ((BitmapDrawable)context.getResources().getDrawable(R.drawable.logo_mingdao)).getBitmap();43.}45.{46.sp.imageUrl = image;47.}48.sp.text = text;50.{51.sp.url = url;52.}53.sp.setShareType(Platform.SHARE_WEBPAGE);54.Platform plat = null;55.if (isWeixin)56.{57.plat = ShareSDK.getPlatform(Wechat.NAME);58.}59.else60.{61.plat = ShareSDK.getPlatform(WechatMoments.NAME);62.}63.plat.setPlatformActionListener(listener);64.plat.share(sp);65.}66.}</code></code></code>15.具体的分享调用
01.<code class="hljs java"><code class="hljs java"><code class="hljs java"><code class="hljs java">/**02.* 方法名称:weixinShare03.* 方法描述:微信分享04.*/05.private void weixinShare()06.{07.String shareContentTxt = '我是来自<a href="http://www.it165.net/pro/ydad/" target="_blank" class="keylink">Android</a>客户端分享实例Demo的数据';08.String sharklink = 'http://user.qzone.qq.com/1039163285/infocenter?ptsig=*Sb6sER-9smBstwyL28cYg2h0D99pYGcPvoySuzkGyc_';09.ShareUtil.getInstance().weiXinShare(true, mHandler, this, Platform.SHARE_WEBPAGE, 'Note客户端分享', shareContentTxt, '', sharklink);10.}11. 12./**13.* 方法名称:weixinQuanShare14.* 方法描述:微信朋友圈分享15.*/16.private void weixinQuanShare()17.{18.String shareContentTxt = '我是来自<a href="http://www.it165.net/pro/ydad/" target="_blank" class="keylink">Android</a>客户端分享实例Demo的数据,如果您看到此条数据,可以选择忽略它!';19.String sharklink = 'http://user.qzone.<;a href="http://www.it165.net/qq/" target="_blank" class="keylink">qq</a>.com/1039163285/infocenter?ptsig=*Sb6sER-9smBstwyL28cYg2h0D99pYGcPvoySuzkGyc_';20.ShareUtil.getInstance().weiXinShare(false, mHandler, this, Platform.SHARE_WEBPAGE, shareContentTxt, 'Note客户端分享', '', sharklink);21.}</code></code></code></code>16.分享完成,测试

分享成功


浙公网安备 33010602011771号