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">@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.封裝分享的方法,微信支持四種分享類型,文本,圖片,音樂,網頁。

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.此處測試的是分享網頁,分享網頁的方法如下:

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.具體的分享調用

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.分享完成,測試

這里寫圖片描述

分享成功

這里寫圖片描述




 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM