社交分享组件有很多 介绍一下sharesdk 的使用

官网:http://sharesdk.cn/

1、先上效果图

2、主要代码:

  1. public class TestShare extends Activity {
  2. private RelativeLayout sina;
  3. private RelativeLayout sms;
  4. private RelativeLayout qq;
  5. private RelativeLayout chat;
  6. private TextView invite_code;
  7. private Context context;
  8. private String[] items = new String[] { "分享给好友", "分享到朋友圈" };
  9. private String share_content;
  10. private String user_id;
  11. private static final int SHARE_SUCCESS = 30;
  12. private static final int SHARE_FAIL = 31;
  13. @Override
  14. protected void onCreate(Bundle savedInstanceState) {
  15. // TODO Auto-generated method stub
  16. super.onCreate(savedInstanceState);
  17. this.setContentView(R.layout.test_share);
  18. context = TestShare.this;
  19. ShareSDK.initSDK(this);
  20. sina = (RelativeLayout) this.findViewById(R.id.share_sina);
  21. qq = (RelativeLayout) this.findViewById(R.id.share_qq);
  22. chat = (RelativeLayout) this.findViewById(R.id.share_chat);
  23. sms = (RelativeLayout) this.findViewById(R.id.share_sms);
  24. share_content = this.getResources().getString(R.string.share_content);
  25. sina.setOnClickListener(new View.OnClickListener() {
  26. @Override
  27. public void onClick(View v) {
  28. // TODO Auto-generated method stub
  29. // 分享到新浪微博
  30. // showShare(true, SinaWeibo.NAME,TestShare.this);
  31. share(share_content, null, SinaWeibo.NAME);
  32. }
  33. });
  34. qq.setOnClickListener(new View.OnClickListener() {
  35. @Override
  36. public void onClick(View v) {
  37. // TODO Auto-generated method stub
  38. // 分享到腾讯微博
  39. // showShare(true, TencentWeibo.NAME, TestShare.this);
  40. share(share_content, null, TencentWeibo.NAME);
  41. }
  42. });
  43. chat.setOnClickListener(new View.OnClickListener() {
  44. @Override
  45. public void onClick(View v) {
  46. // TODO Auto-generated method stub
  47. showChatDialog();
  48. }
  49. });
  50. sms.setOnClickListener(new View.OnClickListener() {
  51. @Override
  52. public void onClick(View v) {
  53. // TODO Auto-generated method stub
  54. sendSms(share_content, "");
  55. }
  56. });
  57. }
  58. // 新浪微博分享 腾讯微博等只需修改 NAME
  59. public void share(String text, String photopath, String sharename) {
  60. Platform.ShareParams sp = new SinaWeibo.ShareParams();
  61. sp.text = text;
  62. if (photopath != null) {
  63. // sp.imagePath = "/mnt/sdcard/测试分享的图片.jpg";
  64. sp.imagePath = photopath;
  65. }
  66. Platform weibo = ShareSDK.getPlatform(context, sharename);
  67. // 设置分享事件回调
  68. weibo.setPlatformActionListener(new PlatformActionListener() {
  69. public void onError(Platform platform, int action, Throwable t) {
  70. // 操作失败的处理代码
  71. Message m = handler.obtainMessage();
  72. m.what = SHARE_FAIL;
  73. TestShare.this.handler.sendMessage(m);
  74. }
  75. public void onComplete(Platform platform, int action,
  76. HashMap<String, Object> res) {
  77. // 操作成功的处理代码
  78. Message m = handler.obtainMessage();
  79. m.what = SHARE_SUCCESS;
  80. TestShare.this.handler.sendMessage(m);
  81. }
  82. public void onCancel(Platform platform, int action) {
  83. // 操作取消的处理代码
  84. }
  85. });
  86. // 执行图文分享
  87. weibo.share(sp);
  88. }
  89. @Override
  90. protected void onDestroy() {
  91. // TODO Auto-generated method stub
  92. ShareSDK.stopSDK(this);
  93. super.onDestroy();
  94. }
  95. // 发送短信
  96. public void sendSms(final String content, final String to) {
  97. Uri smsToUri = Uri.parse("smsto:".concat(to));
  98. Intent intent = new Intent(android.content.Intent.ACTION_SENDTO,
  99. smsToUri);
  100. intent.putExtra("sms_body", content);
  101. startActivity(intent);
  102. }
  103. /**
  104. * 显示选择对话框
  105. */
  106. private void showChatDialog() {
  107. new AlertDialog.Builder(this).setTitle("分享到")
  108. .setItems(items, new DialogInterface.OnClickListener() {
  109. @Override
  110. public void onClick(DialogInterface dialog, int which) {
  111. switch (which) {
  112. case 0:
  113. share(share_content, null, Wechat.NAME);
  114. break;
  115. case 1:
  116. share(share_content, null, WechatMoments.NAME);
  117. break;
  118. }
  119. }
  120. })
  121. .setNegativeButton("取消", new DialogInterface.OnClickListener() {
  122. @Override
  123. public void onClick(DialogInterface dialog, int which) {
  124. dialog.dismiss();
  125. }
  126. }).show();
  127. }
  128. private Handler handler = new Handler() {
  129. /*
  130. * (non-Javadoc)
  131. *
  132. * @see android.os.Handler#handleMessage(android.os.Message)
  133. */
  134. @Override
  135. public void handleMessage(Message msg) {
  136. // TODO Auto-generated method stub
  137. switch (msg.what) {
  138. case SHARE_SUCCESS:
  139. Toast.makeText(TestShare.this, "分享成功", Toast.LENGTH_SHORT)
  140. .show();
  141. break;
  142. case SHARE_FAIL:
  143. Toast.makeText(TestShare.this, "分享失败", Toast.LENGTH_SHORT)
  144. .show();
  145. break;
  146. }
  147. }
  148. };
  149. }

3、  需要的jar包  ShareSDK-Core.jar 是sdk核心包 ,Wechat是微信核心包,Wechat分享到好友,Wechat-Moments 分享到朋友圈。

另 android-support-v4.jar 需要使用官网下载的。

4、代码混淆

混淆文件在demo中说明,直接更改就可以使用

sharesdk 的使用的更多相关文章

  1. iOS集成sharesdk遇到的坑

    分享新浪微博 ★★★分享新浪微博★★★ 前言: 写这个目地是为了记录那些过坑,直接先上效果图.大家看看如果你遇到了应该如果处理更好,因为刚一看到这个效果的时候就明白其实很简单不就是分享微博吧.但是要求 ...

  2. Android中使用ShareSDK集成分享功能

    引言      现在APP开发集成分享功能已经是非常普遍的需求了.其他集成分享技术我没有使用过,今天我就来介绍下使用ShareSDK来进行分享功能开发的一些基本步骤和注意点,帮助朋友们避免一些坑.好了 ...

  3. ShareSDK分享失败的原因

    关于分享估计很多都用的是ShareSDK的社会化分享,简单方便,支持的种类很多,但是一般的话都还是QQ,微信,新浪微博,腾讯微博为主. 最近需要导入一个分享的模块,失败了几次之后最终成功,分享给大家, ...

  4. 用ShareSDK 进行第三方分享

    1.首先要先注册自己的appkey在shareSDK官网里面 2.下载shareSDK 文档,可以根据需要下载自己需要的 如图 3.将下载好的shareSDK 解压后加入工程里面 4.添加依赖库 // ...

  5. iOS之ShareSDK实现分享、第三方登录等功能

    (1)官方下载ShareSDK iOS 2.8.8,地址:http://sharesdk.cn/ (2)根据实际情况,引入相关的库,参考官方文档. (3)在项目的AppDelegate中一般情况下有三 ...

  6. shareSDK实现分享操作时只显示英文字体

    今天用shareSDK实现分享操作时,突然发现分享视图只显示英文字体,而之前是显示中文的,以下是自己找到的解决方法: ,首先,找到shareSDk里的“ShareSDKUI_Localizable.s ...

  7. 第三方登录分享功能-ShareSDK for iOS适配问题记录

    最近app里需要添加第三方授权登陆和分享的功能,选择了ShareSDK,参考了ShareSDK文档对该SDK进行了适配,但遇到了一些问题 1.问题:分享功能点击不跳转  原因:适配iOS9添加白名单 ...

  8. ShareSDK 集成 Google+ 登录 400. Error:redirect_uri_mismatch 和 Error Domain=ShareSDKErrorDomain Code=204

    最近在集成ShareSDK中 Google+ 登录授权时候 出现了如下几个问题 1.    400.  Error:redirect_uri_mismatch 出现这种情况, redirectUri应 ...

  9. 集成ShareSDK,分享成功后QQ和空间回调不执行的可能原因

    AndroidMainifest.xml中的如箭头所示的id与assets下ShareSDK.xml中配置的QQ的AppId一定要相同.

  10. 使用ShareSDK 时注意的问题

    1.使用ShareSDK 社会分享SDK(实现第三方登录) 1.QQ第三方登录时,如果是TencentSessionDelegate出现问题,或者是TencentApiInterface的框架出现问题 ...

随机推荐

  1. Solr4.8.0源码分析(25)之SolrCloud的Split流程

    Solr4.8.0源码分析(25)之SolrCloud的Split流程(一) 题记:昨天有位网友问我SolrCloud的split的机制是如何的,这个还真不知道,所以今天抽空去看了Split的原理,大 ...

  2. python 单元测试

    http://blog.csdn.net/five3/article/details/7104466

  3. [BZOJ 3238] [AHOI 2013] 差异 【后缀数组 + 单调栈】

    题目链接:BZOJ - 3238 题目分析 显然,这道题就是求任意两个后缀之间的LCP的和,这与后缀数组的联系十分明显. 求出后缀数组后,求出字典序相邻两个后缀的LCP,即 Height 数组. 那么 ...

  4. [BZOJ 3747] [POI 2015] Kinoman【线段树】

    Problem Link : BZOJ 3747 题解:ZYF-ZYF 神犇的题解 解题的大致思路是,当区间的右端点向右移动一格时,只有两个区间的左端点对应的答案发生了变化. 从 f[i] + 1 到 ...

  5. c#分支语句;循环语句(随堂练习)

    1. 输入月份,日期号,输出是今年的第几天    平年,2月28天     switch (变量名) {case "": break} 2. 循环语句:    for(int i ...

  6. Java中的属性与字段的区别

    Java中属性和字段的区别  Java中的属性,通常可以理解为其属名性时根据get和set方法名得出的. 其规则是:去掉get或set后其剩余的字符串,如果第二个字母是小写的,则把第一个字母也变成小写 ...

  7. Linux目录树

    Linux目录树(directory tree) 分层结构(不同于数据库文件系统),单个文件/目录的最大长度为255个字符,完整路径为4096个字符 特殊的文件系统 文件系统 挂载点 说明 Root ...

  8. 动态规划(背包问题):HRBUST 1377 金明的预算方案

    金明的预算方案 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行 ...

  9. App自动更新之通知栏下载

    见证过博客园的多次升级,你也希望你的软件通过更新发布新特性通知用户吧,是的.这篇文章是android开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用. 1.设计思路,使用Versio ...

  10. 动态规划——概率dp

    所谓概率dp,用动态规划的思想找到一个事件中可能发生的所有情况,然后找到符合要求的那些情况数,除以总数便可以得到符合要求的事件发生的概率.其核心思想还是通过dp来得到事件发生的所有情况,很类似在背包专 ...