日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用ShareSDK集成分享框架

發(fā)布時(shí)間:2024/3/12 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用ShareSDK集成分享框架 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

目前越來越多的app需要分享功能,而分享的平臺(tái)又越來越多,如果根據(jù)業(yè)務(wù)去每個(gè)平臺(tái)集成SDK工作量又太大,因此,今天給大家推薦一個(gè)Mob下的 ShareSDK多平臺(tái)集成分享,基本囊括了你所有想分享的平臺(tái)。

大綱

1.框架介紹

2.接入說明

3.常見問題

正文

1.框架介紹

http://www.mob.com/product/sharesdk

先上鏈接,著急同學(xué)們可以直接跳走了,不著急的聽咱細(xì)細(xì)道來

然后看看效果,這是個(gè)QQ分享出去的效果,包含了四個(gè)內(nèi)容,標(biāo)題、內(nèi)容、縮略圖以及點(diǎn)擊跳轉(zhuǎn)的url

之后這是支持的分享平臺(tái),絕對(duì)夠用了對(duì)吧~

最后再說下使用分享方式,一種可以用它內(nèi)部集成好的OnekeyShare庫,基本上選擇好需要分享平臺(tái)還有設(shè)置上AppKey等信息基本就能用了,很方便不過UI不能定制,測(cè)試學(xué)習(xí)還行,實(shí)際做項(xiàng)目還是需要自己封裝適配自己項(xiàng)目。

2.接入說明

首先當(dāng)然是要在Mob平臺(tái)以及其他想分享的平臺(tái)注冊(cè)自己app信息了,在此需要注意的是,如果是公司項(xiàng)目一定要公司相關(guān)人員注冊(cè),因?yàn)楹孟裥枰獛в泄镜囊恍┬畔?#xff0c;如軟著或者營業(yè)執(zhí)照等;并且有專人管理,不然有員工離職再登錄上去干點(diǎn)啥就是損失了...曾經(jīng)有個(gè)不成熟的小產(chǎn)品不知道去哪搞賬號(hào),讓我自己注冊(cè)一個(gè),哈哈

現(xiàn)只討論個(gè)人的 ,在Mob下注冊(cè)登錄后,創(chuàng)建app相關(guān)信息,然后選擇ShareSDK,會(huì)獲得AppKey和App Secret信息

然后就是SDK集成了,android下推薦Gradle集成方式

具體集成步驟請(qǐng)參考:http://wiki.mob.com/sdk-share-android-3-0-0/

值得注意的是,如果不使用OneKeyShare庫則需設(shè)置Gui為false,下面是在需要分享module下build.gradle配置

//shareSDK配置信息 MobSDK {//http://www.mob.com/developer/loginappKey "xxxxxxx"appSecret "xxxxxxxxxxxxx"gui false //不使用默認(rèn)UI OnekeyShare庫ShareSDK {devInfo {SinaWeibo {appKey "xxxxxxx"appSecret "xxxxxxxxxxxxx"callbackUri "http://www.sharesdk.cn"shareByAppClient true //是否使用客戶端分享}//https://open.tencent.com/QQ {appId "xxxxxxx"appKey "xxxxxxxxxxxxx"shareByAppClient truebypassApproval false //繞過審核標(biāo)記}Wechat {appId "xxxxxxx"appSecret "xxxxxxxxxxxxx"shareByAppClient truebypassApproval false}WechatMoments {appId "xxxxxxx"appSecret "xxxxxxxxxxxxx"shareByAppClient truebypassApproval false}WechatFavorite {appId "xxxxxxx"appSecret "xxxxxxxxxxxxx"shareByAppClient true}}} }

根據(jù)步驟配置完檢查下

1.根目錄的build.gradle添加依賴
2.需要使用的module下build.gradle添加配置信息
3.自定義app下初始化

4.混淆設(shè)置

5.添加相關(guān)權(quán)限

然后還沒完呢,開始平臺(tái)的 一些設(shè)置,在此只講解下微信、朋友圈、微信收藏、QQ、新浪微博這幾個(gè)根據(jù)常用的平臺(tái),其中微信系列的三個(gè)都是用微信開發(fā)平臺(tái)注冊(cè)的同一個(gè)appId

QQ分享說明:http://bbs.mob.com/forum.php?mod=viewthread&tid=24653&extra=page%3D2

微信分享說明:http://bbs.mob.com/thread-24656-1-1.html

新浪微博分享說明:http://bbs.mob.com/forum.php?mod=viewthread&tid=24689&page=1&extra=#pid61902

以上配置步驟開始都是手動(dòng)下載ShareSDK的步驟,因?yàn)镾hareSDK之前我們已經(jīng)使用Gradle配置好了,直接參考之后相關(guān)平臺(tái)步驟即可,步驟中在shareSDk.xml中配置的信息我們?cè)趍odule下build.gradle配置也一樣

根據(jù)以上步驟配置完再檢查下

1.Manifest中注冊(cè)ShareSDK的activity、QQ的activity、微信的activity

2.需要使用的module下build.gradle的各個(gè)平臺(tái)配置信息(appId...)

3.app包名和各個(gè)平臺(tái)注冊(cè)包名是否一致

到此,基本上配置告一段落,若使用OneKeyShare,設(shè)置好分享主體就可以分享了

public static void showShare() {OnekeyShare oks = new OnekeyShare();oks.setImageUrl(“http://firicon.fir.im/baa18a6d779c597888d685f1159070df5b4f2912”);oks.setTitleUrl(“http://www.baidu.com”);oks.setText(“text”);oks.setTitle(“標(biāo)題”);oks.setPlatform(QQ.NAME);oks.show(context); }

然后如果是自定義封裝,最主要的是各個(gè)平臺(tái)的參數(shù)略有不同

詳情參考:http://wiki.mob.com/%e4%b8%8d%e5%90%8c%e5%b9%b3%e5%8f%b0%e5%88%86%e4%ba%ab%e5%86%85%e5%ae%b9%e7%9a%84%e8%af%a6%e7%bb%86%e8%af%b4%e6%98%8e/

根據(jù)設(shè)計(jì)稿實(shí)現(xiàn)個(gè)PopUpwindow,然后根據(jù)不同平臺(tái)點(diǎn)擊設(shè)置參數(shù)

case R.id.normalshare_wechat:if (!CommonUtil.isWeixinAvilible(App.getInstance())) {MyToast.showToast(App.getInstance(), "檢查到您手機(jī)沒有安裝微信,請(qǐng)安裝后使用該功能");return;}Wechat.ShareParams wechatSP = new Wechat.ShareParams();wechatSP.setShareType(Wechat.SHARE_WEBPAGE);wechatSP.setTitle(title);wechatSP.setText(text);wechatSP.setUrl(url);wechatSP.setImagePath(imagePath);wechatSP.setImageUrl(imageUrl);plat = ShareSDK.getPlatform(Wechat.NAME);plat.share(wechatSP);break;case R.id.normalshare_wechat_moments:if (!CommonUtil.isWeixinAvilible(App.getInstance())) {MyToast.showToast(App.getInstance(), "檢查到您手機(jī)沒有安裝微信,請(qǐng)安裝后使用該功能");return;}Wechat.ShareParams wechatSP2 = new Wechat.ShareParams();wechatSP2.setShareType(WechatMoments.SHARE_WEBPAGE);wechatSP2.setTitle(title);wechatSP2.setText(text);wechatSP2.setUrl(url);wechatSP2.setImagePath(imagePath);wechatSP2.setImageUrl(imageUrl);plat = ShareSDK.getPlatform(WechatMoments.NAME);plat.share(wechatSP2);break;case R.id.normalshare_wechat_favorite:if (!CommonUtil.isWeixinAvilible(App.getInstance())) {MyToast.showToast(App.getInstance(), "檢查到您手機(jī)沒有安裝微信,請(qǐng)安裝后使用該功能");return;}Wechat.ShareParams wechatSP3 = new Wechat.ShareParams();wechatSP3.setShareType(WechatFavorite.SHARE_WEBPAGE);wechatSP3.setTitle(title);wechatSP3.setText(text);wechatSP3.setUrl(url);wechatSP3.setImagePath(imagePath);wechatSP3.setImageUrl(imageUrl);plat = ShareSDK.getPlatform(WechatFavorite.NAME);plat.share(wechatSP3);break;case R.id.normalshare_qq:if (!CommonUtil.isQQClientAvailable(App.getInstance())) {MyToast.showToast(App.getInstance(), "檢查到您手機(jī)沒有安裝QQ,請(qǐng)安裝后使用該功能");return;}QQ.ShareParams qqSP = new QQ.ShareParams();qqSP.setShareType(QQ.SHARE_WEBPAGE);qqSP.setTitle(title);qqSP.setText(text);qqSP.setUrl(url);qqSP.setTitleUrl(titleUrl);qqSP.setSite(site);qqSP.setSiteUrl(siteUrl);qqSP.setImagePath(imagePath);qqSP.setImageUrl(imageUrl);plat = ShareSDK.getPlatform(QQ.NAME);plat.share(qqSP);break;case R.id.normalshare_sinaweibo:SinaWeibo.ShareParams weiboSP = new SinaWeibo.ShareParams();weiboSP.setShareType(SinaWeibo.SHARE_WEBPAGE);weiboSP.setTitle(title);//微博分享鏈接帶入描述,不設(shè)置url,否則不能顯示圖片weiboSP.setText(text + "\n" + url); // weiboSP.setUrl(url);weiboSP.setImagePath(imagePath);weiboSP.setImageUrl(imageUrl);plat = ShareSDK.getPlatform(SinaWeibo.NAME);plat.share(weiboSP);break;

值得注意的是,新浪微博的鏈接一般是在描述中帶入的,如:"熱烈慶祝改革開放四十年#https://.....#"。如果設(shè)置url則顯示不了圖片。

3.常見問題

<1.配置在哪里

一般直接在app的build.gradle配置,若是需要模塊化單獨(dú)一個(gè)module,則需要app依賴該module
<2.gui開關(guān)

同時(shí)也是OneKeyShare庫的開關(guān),推薦自己學(xué)習(xí)時(shí)打開,因?yàn)橛泻芏嘧⑨尯苡袇⒖純r(jià)值,實(shí)際項(xiàng)目中就關(guān)掉,減小體積
<3.QQ、微信常見問題

別忘了在Manifest中注冊(cè)相關(guān)activity;

QQ分享,縮略圖鏈接不能是ip和接口的格式,否則會(huì)顯示不出;

微信分享,使用需要帶有正式版簽名,或者根據(jù)之前說明文檔配置簽名,否則客戶端拉不起來
<4.分享成功接口

微信成功回調(diào)接口已修正,請(qǐng)大家注意


<5.判斷安裝api

兩種方法

一種是根據(jù)包名判斷

public static boolean isWeixinAvilible(Context context) {final PackageManager packageManager = context.getPackageManager();// 獲取packagemanagerList<PackageInfo> pinfo = packageManager.getInstalledPackages(0);// 獲取所有已安裝程序的包信息if (pinfo != null) {for (int i = 0; i < pinfo.size(); i++) {String pn = pinfo.get(i).packageName;if ("com.tencent.mm".equals(pn)) {return true;}}}return false; }

還有一種是根據(jù)分享平臺(tái)api判斷

Platform plat = ShareSDK.getPlatform(Wechat.NAME); if (!plat.isClientValid()) {MyToast.showToast(App.getInstance(), "檢查到您手機(jī)沒有安裝微信,請(qǐng)安裝后使用該功能");return; }

因?yàn)樵诓糠謾C(jī)型上有一種方法失效的情況,因此推薦大家同時(shí)使用兩種方法判斷,若都不滿足則判斷未安裝
<6.shareSDk.xml在哪

開始集成我也疑惑的問題,這個(gè)是手動(dòng)下載SDK集成才有的,使用Gradle集成沒有的,不過里面好多注釋很有價(jià)值,推薦大家也下載下來看看

<7.圖片參數(shù)

圖片參數(shù)有個(gè)三個(gè),imagePath、imageUrl、imageData

但是平臺(tái)不同支持的也不同,所以大家自己封裝的時(shí)候推薦只使用imageUrl和imagePath,imagePath可以作為當(dāng)imageUrl為null的占位圖,如果兩個(gè)同時(shí)設(shè)置好像是顯示imageUrl,謹(jǐn)慎期間大家自行再試下
<8.客服

這個(gè)主要是我推薦ShareSDK的原因,這個(gè)客服是真的強(qiáng)大,基本上有關(guān)分享的什么問題都很快能給解決,有時(shí)候懶得找文檔了,直接加了QQ問就好,不過有時(shí)候會(huì)排隊(duì),哈哈

總結(jié)

之前分享都是各個(gè)平臺(tái)各自集成,真的是麻煩至極,這個(gè)SDK簡(jiǎn)單易用,功能強(qiáng)大,客服給力,因此推薦大家使用。基本上我遇到的問題上面都提到了,還有什么問題歡迎大家一起來討論

總結(jié)

以上是生活随笔為你收集整理的使用ShareSDK集成分享框架的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。