目前市面上大大小小的软件,几乎都支持分享的功能,前几天在做的项目中也有此功能,使用的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。

view source print ?
01. <code class="hljs java">@Override
02. protected void onCreate(Bundle savedInstanceState)
03. {
04. super.onCreate(savedInstanceState);
05. setContentView(R.layout.activity_main);
06. //初始化ShareSDK
07. ShareSDK.initSDK(MainActivity.this);
08. initView();
09. }</code>

13.封装分享的方法,微信支持四种分享类型,文本,图片,音乐,网页。

view source print ?
01. <code class="hljs java"><code class="hljs java">/**
02. * 方法名称:xinWeiShare
03. * <p>方法描述:微信分享
04. * @param isWeiXin true为微信 false为微信朋友圈
05. * @param handler 分享界面回调 不能为空
06. * @param context 分享界面mContext
07. * @param type 分享类型    如:Platform.SHARE_TEXT,Platform.SHARE_IMAGE,Platform.SHARE_MUSIC,Platform.SHARE_WEBPAGE
08. * @param args 分享类型 如Platform.SHARE_TEXT(微信文本类型) 必须传入 两个参数(不能少传,也不能多传) :第一个为标题
09. *                                                                          第二个为分享内容
10. *                                                           
11. *             分享类型 如Platform.SHARE_IMAGE(微信图片类型) 必须传入 两个参数(不能少传,也不能多传):第一个为标题
12. *                                                                          第二个为分享图片 URL地址 或者 手机文件地址
13. *                                                           
14. *             分享类型 如Platform.SHARE_MUSIC(微信音乐分享) 必须传入 五个参数(不能少传,也不能多传):第一个为标题
15. *                                                                          第二个为分享内容
16. *                                                                          第三个为分享图片地址 URL地址 或者 手机文件地址
17. *                                                                          第四个为分享音乐地址(必须携带http:// 或者 https://)
18. *                                                                          第五个为分享音乐详细地址(必须携带http:// 或者 https://)
19. *                                                           
20. *             分享类型 如Platform.SHARE_WEBPAGE(微信网页链接分享) 必须传入四个参数(不能少传,也不能多传): 第一个为标题
21. *                                                                               第二个为分享内容  
22. *                                                                               第三个为分享网页图片地址  URL地址 或者 手机文件地址
23. *                                                                               第四个为分享网页的地址 (必须携带http:// 或者 https://)
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.此处测试的是分享网页,分享网页的方法如下:

view source print ?
01. <code class="hljs java"><code class="hljs java"><code class="hljs java">/**
02. * 方法名称:xinweiWebShare
03. * <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. else
14. {
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. else
35. {
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. }
44. else if (image.contains('http://') || image.contains('https://'))
45. {
46. sp.imageUrl = image;
47. }
48. sp.text = text;
49. if (url.contains('http://') || url.contains('https://'))
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. else
60. {
61. plat = ShareSDK.getPlatform(WechatMoments.NAME);
62. }
63. plat.setPlatformActionListener(listener);
64. plat.share(sp);
65. }
66. }</code></code></code>

15.具体的分享调用

view source print ?
01. <code class="hljs java"><code class="hljs java"><code class="hljs java"><code class="hljs java">/**
02. * 方法名称:weixinShare
03. * 方法描述:微信分享
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. * 方法名称:weixinQuanShare
14. * 方法描述:微信朋友圈分享
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.分享完成,测试

分享成功

sharesdk微信分享相关推荐

  1. android sdk引入 微信分享_Android分享 ShareSDK微信分享详解

    本文转载自: http://www.it165.net/pro/html/201508/50793.html (只作转载, 不代表本站和博主同意文中观点或证实文中信息) 目前市面上大大小小的软件,几乎 ...

  2. shareSDK 微信分享闪退问题

    微信与其他应用不同,集成了shareSDK后,其他的都好使,为什么就微信的不好使,无论是分享给好友,还是朋友圈,都出现闪退的情况,楼主同样遇到了这种情况. 微信分享闪退有种情况: 1,你没有打包成.a ...

  3. 【Android 分享】ShareSDK微信分享详解

    目前市面上大大小小的软件,几乎都支持分享的功能,前几天在做的项目中也有此功能,使用的ShareSDK来实现的微信分享功能,下面就跟着我来一步步实现微信分享吧! ShareSDK介绍:ShareSDK官 ...

  4. ShareSDK微信分享BUG

    用ShareSDK做微信分享,有一些内容没有图片,所以没有传图片地址,结果分享出去的就只有纯文字.特此记录一下.

  5. shareSDK 微信分享的时候只能分享jpg格式的图片大于32k时为什么分享不出去?

    最新下了9.0的下shareSDK的来做iOS app社交分享,发现当分享到微信上的时候,图片如果是.png格式的话,功能是正常的,但其他格式的图片大于32k时就会分享不成功, 转载于:https:/ ...

  6. ShareSDK微信分享时的坑

    /** * * @param context * @param title 标题 * @param text 标题下面右边文字 * @param imagePath 标题下面左边图片 * @param ...

  7. 在Unity3D项目中接入ShareSDK实现安卓平台微信分享功能(可使用ShareSDK默认UI或自定义UI)...

    最近公司的大厅要重做,我协助主程一起制作新大厅和新框架,前面制作的编辑器也派上了用场.等全部功能做完后我会再写一个复盘,这两天主程在忙于写热更新的功能,所以把接入分享SDK功能的任务交给了我,Shar ...

  8. ShareSDK接入实现微信分享功能(转)

    ShareSDK接入实现微信分享功能 首先需要去Mob官网(http://www.mob.com/)下载shareSDK For Unity3d 下载完成,解压,将以下plugins文件夹移入Unit ...

  9. ShareSDK关于微信分享问题

    转自:http://www.eoeandroid.com/thread-310281-1-1.html 发现用sharesdk,做其他平台分享很快:如新浪微博.腾讯微博.有道云笔记.开心网.Googl ...

最新文章

  1. linux mysql cpu 高,Linux系统中关于Mysql数据库导致CPU很高的问题解决
  2. socket 编程入门教程(一)TCP server端:3、sockaddr与sockaddr_in
  3. bzoj4027,[HEOI2015]兔子与樱花
  4. python——学习笔记3
  5. git log 迁移_现场故事:从Log4J迁移到Log4J2
  6. WOJ 18 动态无向图
  7. 最大化最小值 | | 最小化最大值
  8. vue-cli 2.6.9 安装卸载及创建一个工程
  9. 通过QQ 2012 客户端协议获取clientkey的0x30数据包分析
  10. Caused by: javax.security.auth.login.LoginException: unable to find LoginModule class: com.ibm.secur
  11. 手动制作解除U盘写保护文件
  12. 命令提示符cmd以管理员身份运行的快捷键
  13. Pest incidence forecasting based on Internet of Things and Long Short-Term Memory Network 论文精读
  14. Carte作为Windows服务
  15. 给oracle数据库现有表添加字段
  16. FFmpeg入门详解之124:Qt5 FFmpeg单路网络摄像头采集预览
  17. Xcode中mark标注使用方法
  18. Ubuntu 18.04 其他镜像的刻录
  19. Java 计算一段代码运行的时间
  20. Maxscale实现MySQL读写分离

热门文章

  1. pwnable.kr |Toddler's Bottle |fd
  2. git如何查看本地分支及对应的远程分支
  3. 检查服务器状态的软件--Keepalived基础知识
  4. (转)专访 | 璇玑公司CEO郑毓栋:人工智能的金融应用,一旦赌错万劫不复
  5. java计算机毕业设计理发预约系统源代码+数据库+系统+lw文档
  6. 关于Android手机adb device无法连接问题得解决办法
  7. MySQL 增删查询
  8. mybatis中mapper文件中的动态sql语句
  9. 高内聚,低耦合是什么意思?
  10. 怎样理解高内聚低耦合?