1. 程式人生 > >ShareSdk整合之一,植入程式碼,可修改圖示,修改分享樣式

ShareSdk整合之一,植入程式碼,可修改圖示,修改分享樣式

一、資料準備

  1、官方後臺建立開發者賬號,建立應用,獲取key

   2、下載sdk;勾選要整合的平臺;

    3、解壓資料夾,得到以下目錄;

3、再次生成需要的平臺後


二、整合shareSdk

 1、(官方整合的第一種方式)
   直接複製jar和資源的方式,可以參考ShareSDK的Sample專案。 使用複製jar的方法,需要除了複製MainLibs/libs中的jar外,還需要複製  MainLibs/res中圖片和strings,否則會出現授權時找不到資源的問題。 而且如果您的專案也集成了快捷分享,還需要複製OneKeyShare/src中的原始碼、OneKeyShare/res中的資源,如果你的專案裡沒有android-support-v4的jar需要把OneKeyShare/libs下的android-support-v4的jar到您的專案中。

2、將Sample下的libs複製到studio專案的的libs, 將assets複製到studio下。將SampleSample\src\cn\sharesdk\onekeyshare複製到java下。同時複製資原始檔將Sample\res下的文江複製到對應檔案下

      

3、得到studio下的檔案(一些jar是其他的,於本文無關,複製sample下的即可)


4、這是分享用到的資原始檔(不復制,會沒有圖片和文字但可以分享)


5、在ShareSdk.xml中進行設定,寫入對應的微信和qq等三方平臺得到的AppSecret和AppKey

三、進行樣式改變(淺析)

https://blog.csdn.net/baidu_27282085/article/details/70319385

四、使用

ShareSDK.initSDK(this);
OnekeyShare oks = new OnekeyShare();
// 關閉sso授權
oks.disableSSOWhenAuthorize();
oks.setTitle(shareBean.title);
// titleUrl是標題的網路連結,僅在人人網和QQ空間使用
oks.setTitleUrl(shareBean.url);
// text是分享文字,所有平臺都需要這個欄位
oks.setText(shareBean.content);
// imagePath是圖片的本地路徑,Linked-In以外的平臺都支援此引數
// oks.setImagePath("/sdcard/test.jpg");//確保SDcard下面存在此張圖片
if(StringUtils.isNotEmpty(shareBean.cover_url)) { oks.setImageUrl(shareBean.cover_url); }else{ oks.setImageUrl(URLHelper.ShareImageURL); } // url僅在微信(包括好友和朋友圈)中使用 oks.setUrl(shareBean.url); oks.setCallback(new PlatformActionListener() { @Override public void onError(Platform platform, int arg1, Throwable t) { // TODO Auto-generated method stub Log.e("sharesdk","sharesdk-error="+t.toString()); if (SinaWeibo.NAME.equals(platform.getName())){ platform.removeAccount(true); } } @Override public void onComplete(Platform platform, int arg1, HashMap<String, Object> arg2) { if (SinaWeibo.NAME.equals(platform.getName())||platform.getName().equals("QZone")||platform.getName().equals("WechatMoments")) { mHandler.post(new Runnable() { @Override public void run() { Toast.makeText(mContext, "分享成功", Toast.LENGTH_SHORT).show(); } }); } } @Override public void onCancel(Platform arg0, int arg1) { } });// 呼叫自己設定的callback // 啟動分享GUI oks.show(this);