Android社会化分享详解
前言
? ? 現(xiàn)如今app市場(chǎng)競(jìng)爭(zhēng)激烈,做app不會(huì)放過任何推廣自己的app的渠道,如果app中沒有社會(huì)化分享功能,那真的是OUT了,我們先來看下一些app中的分享界面功能吧。
? ? ? ?現(xiàn)在主流的分享平臺(tái),一般用的都是微信、QQ、微博,國外的話就Fb、Twitter等,如果每一個(gè)都要去單獨(dú)加,對(duì)我們來說是耗時(shí)耗力,最重要的是每個(gè)第三方的SDK都很大,會(huì)增大很多包的體積,這個(gè)是我們最不想看到的;
? ? ?現(xiàn)在市面上提供了很多SDK,從集成速度,包的體積,平臺(tái)多樣,服務(wù)響應(yīng),用戶基數(shù)上來講,ShareSDK是個(gè)不錯(cuò)的選擇,最重要的是,現(xiàn)在上了maven的集成方式,集成超快。
簡(jiǎn)單的準(zhǔn)備工作
? ? 下面我們看看我們需要做的準(zhǔn)備工作,首先先確定我們想要分享的第三方平臺(tái),這里面我們就以國內(nèi)主流的平臺(tái)舉例,微信、QQ、微博;首先我們必須去其第三方平臺(tái)去申請(qǐng)應(yīng)用得到對(duì)應(yīng)的appid等信息,第三方給了appid,我們才可以去做分享;
話不多說上網(wǎng)站:
QQ:http://open.qq.com QQ與QZone共用一套key即可
微信:http://open.weixin.qq.com 微信好友,微信朋友圈,微信收藏共用一套key即可
微博:http://open.weibo.com
ShareSDK集成步驟
第一步,注冊(cè)賬號(hào)申請(qǐng)ShareSDK應(yīng)用
? ? ?ShareSDK的AppKey直接到Mob官網(wǎng)申請(qǐng)即可。
? ? ?拿到appkey與appsecret了我們?nèi)タ纯次臋n吧,http://wiki.mob.com/進(jìn)入ShareSDK快速集成文檔,這個(gè)時(shí)候有人會(huì)問,問什么不下載SDK,直接開始看文檔集成了呢,因?yàn)镾hareSDK 提供了Gradle的maven集成方式,無需手動(dòng)下載,無需手動(dòng)配置資源,權(quán)限;是不是聽起來很牛B,忍不住去看看;
第二步,sharesdk的maven集成
?首先、如下圖所示,需要在build.gradle中配置
maven {url "http://mvn.mob.com/android"}dependencies {classpath 'com.mob.sdk:MobSDK:+'}復(fù)制代碼添加的位置按照截圖上面的配置即可;
其次,在使用到Mob產(chǎn)品的module下面的build.gradle文件里面添加引用
maven集成方式可以在Mob產(chǎn)品的module下面的build.gradle文件里面配置ShareSDK各個(gè)社交平臺(tái)的key信息
配置第三方key的字段說明可以點(diǎn)擊這里看文檔即可;
如上圖所示配置完之后點(diǎn)擊Sync Now進(jìn)行重新編譯,到這里我們就集成完成了,下面我們調(diào)用代碼即可;
注意事項(xiàng):如果您沒有在AndroidManifest中設(shè)置appliaction的類名,MobSDK會(huì)將這個(gè)設(shè)置為com.mob.MobApplication,但如果您設(shè)置了,請(qǐng)?jiān)谀约旱腁pplication類中調(diào)用:
MobSDK.init(this);復(fù)制代碼并且在Manifest清單文件中配置:tools:replace=”android:name”,如下所示:
第三步,代碼調(diào)用
?下面的代碼就是onekeyshare的分享,即ShareSDK下面配置的gui true才可以調(diào)用,下面的代碼復(fù)制到您的工程中,在需要分享的地方調(diào)用即可;
private void showShare(String platformToShare) {OnekeyShare oks = new OnekeyShare();//關(guān)閉sso授權(quán)oks.disableSSOWhenAuthorize();if (platformToShare != null) {oks.setPlatform(platformToShare);}// title標(biāo)題,微信、QQ和QQ空間等平臺(tái)使用oks.setTitle("測(cè)試標(biāo)題");// titleUrl QQ和QQ空間跳轉(zhuǎn)鏈接oks.setTitleUrl("http://www.baidu.com");// text是分享文本,所有平臺(tái)都需要這個(gè)字段oks.setText("我是分享文本");//分享網(wǎng)絡(luò)圖片、分享本地圖片用oks.setImagePath("/sdcard/test.jpg");確保SDcard下面存在此張圖片oks.setImageUrl("https://lanre.smartemple.cn/image/share.png");// url在微信、微博,Facebook等平臺(tái)中使用oks.setUrl("http://sharesdk.cn");// comment是我對(duì)這條分享的評(píng)論,僅在人人網(wǎng)使用oks.setComment("我是測(cè)試評(píng)論文本"); /* //onekeyshare默認(rèn)提供了默認(rèn)的分享回調(diào)Toast提示,如果想要自己定義調(diào)用setCallback即可,不需要自定義的可以忽略,值得一提的是callback回調(diào)是子線程,需要傳到主線程之后去操作后續(xù)內(nèi)容哦; oks.setCallback(new PlatformActionListener() { @Overridepublic void onError(Platform arg0, int arg1, Throwable arg2) {// TODO Auto-generated method stub } @Overridepublic void onComplete(Platform arg0, int arg1, HashMap<String, Object> arg2) {// TODO Auto-generated method stub }@Overridepublic void onCancel(Platform arg0, int arg1) {// TODO Auto-generated method stub }});*/// 啟動(dòng)分享GUIoks.show(this);}復(fù)制代碼值得一提的是,onekeyshare的分享是根據(jù)調(diào)用的分享的方法自動(dòng)適配分享類型,每個(gè)平臺(tái)分享的方法不同,具體可以去看ShareSDK的文檔說明下面我們就可以去測(cè)試了,在監(jiān)聽按鈕下調(diào)用showShare(null);復(fù)制代碼效果如下:此時(shí)點(diǎn)擊平臺(tái)跳轉(zhuǎn)分享即可;
? ? ? ?如果不想用OneKeyShare的界面很簡(jiǎn)單,很多小伙伴肯定也發(fā)現(xiàn)了剛才我的方法中private void showShare(String platformToShare) 有一個(gè)參數(shù),如果想單獨(dú)調(diào)用修改這個(gè)參數(shù)即可,比如,我想單獨(dú)跳轉(zhuǎn)QQ,則在這個(gè)方法里面?zhèn)鱍Q.NAME即可,其他的平臺(tái)名稱看ShareSDK的快速集成文檔即可,效果如下
Demo下載地址:鏈接:https://pan.baidu.com/s/1nxh2Bqh 密碼:j4c3
常見問題說明:
1、微信分享提示分享失敗:檢查分享內(nèi)容,特別是圖片是否有效,或者只分享文字測(cè)試
2、微信分享閃一下調(diào)用不起來微信客戶端:檢查微信后臺(tái)配置的包名是否與配置的applicationId一致;檢查微信后臺(tái)配置的應(yīng)用簽名是否與您的app的應(yīng)用簽名一致;
3、新浪微博客戶端分享提示分享成功,但是會(huì)保存到草稿箱發(fā)送不出去,檢查微博后臺(tái)配置的包名和簽名,與您的app的不一致導(dǎo)致的
4、QQ分享不需要審核通過即可分享,but,需要配置一些基本的信息,IOS與android平臺(tái)可以共用一套key,但是別忘了兩個(gè)平臺(tái)的基本信息都要配置下;
5、微信是通過審核之后才會(huì)給我們appid的,所以必須要通過審核才可以正式分享,并且必須保證微信后臺(tái)配置的包名和應(yīng)用簽名與我們的app的包名和應(yīng)用簽名一致,否則無法正分享,做微信第三方登錄的小伙伴,別忘了去申請(qǐng)權(quán)限還要每年300塊哦;
6、新浪微博、申請(qǐng)的時(shí)候就會(huì)給我們appkey和appsecret了,但是別忘了配置回調(diào)地址,不知道回調(diào)地址怎么配置都可以點(diǎn)擊這里進(jìn)行查看,新浪微博和微信一樣都需要配置包名和應(yīng)用簽名,這一點(diǎn)需要注意,如果包名和簽名不一致客戶端分享會(huì)報(bào)錯(cuò)的哦。
總結(jié)
以上是生活随笔為你收集整理的Android社会化分享详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PN序列的产生以及相关函数的计算
- 下一篇: 信贷风控四:高校地址自动化识别