ShareSdk整合之一,植入程式碼,可修改圖示,修改分享樣式
阿新 • • 發佈:2019-01-22
一、資料準備
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);