Android ShareSDK快速實(shí)現(xiàn)分享功能
第一步 :獲取ShareSDK
為了集成ShareSDK,您首先需要到ShareSDK官方網(wǎng)站注冊(cè)并且創(chuàng)建應(yīng)用,獲得ShareSDK的Appkey,然后到SDK的下載頁(yè)面下載SDK的壓縮包,解壓以后可以得到如下圖的目錄結(jié)構(gòu):
ShareSDK在“ShareSDK for Android”目錄下,此目錄中的“Libs”包含“MainLibs”和“OnekeyShare” 分別是ShareSDK的核心庫(kù)和“快捷分享”的源碼庫(kù),說(shuō)明文檔也在“ShareSDK for Android”目錄下,集成ShareSDK前請(qǐng)務(wù)必仔細(xì)閱讀。 “ShareSDK for Android ApiDoc”包含Mainlibs和OnekeyShare的JavaDoc,供開(kāi)發(fā)者開(kāi)發(fā)時(shí)查閱。 “ShareSDK for Android Sample”包含ShareSDK的功能演示代碼和apk文件,Sample源碼的JavaDoc在中。 “ShareSDK for Android Services”包含ShareSDK已經(jīng)發(fā)布的“插件服務(wù)”,暫時(shí)我們只提供了“評(píng)論與贊”服務(wù),壓縮包中已經(jīng)提供了此插件服務(wù)的依賴庫(kù)、示例代碼、JavaDoc和apk文件。
第二步:導(dǎo)入ShareSDK
ShareSDK集成方式:
1、直接復(fù)制jar包到目標(biāo)項(xiàng)目libs目錄
直接復(fù)制jar和資源的方式,可以參考ShareSDK的Sample項(xiàng)目。 使用復(fù)制jar的方法,需要除了復(fù)制MainLibs/libs中的jar外,還需要復(fù)制MainLibs/res中圖片和strings,否則會(huì)出現(xiàn)授權(quán)時(shí)找不到資源的問(wèn)題。 而且如果您的項(xiàng)目也集成了快捷分享,還需要復(fù)制OneKeyShare/src中的源碼、OneKeyShare/res中的資源,如果你的項(xiàng)目里沒(méi)有android-support-v4的jar需要把OneKeyShare/libs下的android-support-v4的jar到您的項(xiàng)目中。
2、快速生成項(xiàng)目
由于直接復(fù)制jar包和資源的集成方式比較麻煩,ShareSDK提供了快速集成的程序,在Windows下可以直接雙擊執(zhí)行,完成以后可以通過(guò)復(fù)制目標(biāo)目錄中的文件到您項(xiàng)目中覆蓋就行了。 極大簡(jiǎn)化了“直接復(fù)制jar和資源”這種集成方式的操作步驟。 對(duì)于你的項(xiàng)目是剛開(kāi)發(fā)或者想寫(xiě)一個(gè)Demo測(cè)試ShareSDK功能,可以使用這種方法快速集成
第三步:添加應(yīng)用信息
有三種方式
第一種:在ShareSDK的應(yīng)用管理后臺(tái)中配置,使用此方法需要調(diào)用ShareSDK.initSDK(context,你的應(yīng)用在sharesdk注冊(cè)時(shí)返回的AppKey)方法進(jìn)行初始化,如果以后更改了注冊(cè)信息可以直接從網(wǎng)上更改,而不用重新發(fā)布新版本進(jìn)行更新。(優(yōu)先級(jí)最高)。
第二種:通過(guò)代碼配置“setPlatformDevInfo(String, HashMap<String, Object>)”方法,使用此方法需要調(diào)用ShareSDK.init(context,你的應(yīng)用在sharesdk注冊(cè)時(shí)返回的AppKey)方法進(jìn)行初始化。(優(yōu)先級(jí)中)。
第三種:通過(guò)“assets/ShareSDK.xml”文件來(lái)配置,次方式會(huì)以明文存在,但這種方式最為簡(jiǎn)單。(優(yōu)先級(jí)最低)。
這三種方式開(kāi)發(fā)者可以自行選擇,不過(guò)這三種設(shè)置方式各有區(qū)別:第一種方式可以實(shí)現(xiàn)“動(dòng)態(tài)配置應(yīng)用信息”的功能,但是一旦脫離網(wǎng)絡(luò),ShareSDK可能無(wú)法運(yùn)作;第三種方式是優(yōu)先級(jí)最低的方式,但是它最為方便、集中;最后使用代碼設(shè)置的方式是最靈活的方式,第二種方式開(kāi)發(fā)者可以在代碼里面寫(xiě)死應(yīng)用信息,也可以通過(guò)私有協(xié)議,從自己的服務(wù)器上動(dòng)態(tài)獲取應(yīng)用注冊(cè)信息,其優(yōu)先級(jí)居第一種和第二種之間。 使用ShareSDK.xml配置注冊(cè)信息
<ShareSDK AppKey="填寫(xiě)您在ShareSDK上注冊(cè)到的AppKey" /> <SinaWeibo SortId="此平臺(tái)在您分享列表中的位置,整型,數(shù)值越大越靠后" AppKey="填寫(xiě)您在新浪微博上注冊(cè)到的AppKey" AppSecret="填寫(xiě)您在新浪微博上注冊(cè)到的AppSecret" Id="自定義字段,整型,用于您項(xiàng)目中對(duì)此平臺(tái)的識(shí)別符" RedirectUrl="填寫(xiě)您在新浪微博上注冊(cè)的RedirectUrl" ShareByAppClient="是否使用客戶端進(jìn)行分享" Enable="布爾值,標(biāo)記此平臺(tái)是否有效" />
ShareSDK.xml以XML格式存儲(chǔ)數(shù)據(jù),每一個(gè)平臺(tái)一個(gè)塊,除了社交平臺(tái)外,開(kāi)發(fā)者在ShareSDK注冊(cè)應(yīng)用時(shí)得到的Appkey需要填寫(xiě)在塊“ShareSDK”中,如果此Appkey不是開(kāi)發(fā)者自己的Appkey,則將來(lái)在ShareSDK應(yīng)用后臺(tái)的統(tǒng)計(jì)數(shù)據(jù)將不正確。ShareSDK的每一個(gè)平臺(tái)都具備SortId、Id、Enable四個(gè)字段,除此之外的字段(如新浪微博的AppKey、AppSecret、RedirectUrl、ShareByAppClient等字段)需要到目標(biāo)平臺(tái)上注冊(cè)應(yīng)用以后得到,請(qǐng)正確填寫(xiě)這些字段的數(shù)據(jù),否則ShareSDK無(wú)法完成授權(quán),則后續(xù)的其它操作也將無(wú)法執(zhí)行。
代碼配置注冊(cè)信息示例(演示初始化新浪微博配置信息) 因?yàn)楦鱾€(gè)分享平臺(tái)可以設(shè)置的配置信息不同,具體分享平臺(tái)需要設(shè)置哪些配置信息請(qǐng)參考sample里的ShareSDK.xml配置文件
ShareSDK.initSDK(Context,"你的應(yīng)用在Sharesdk注冊(cè)時(shí)返回的AppKey"); HashMap<String,Object> hashMap = new HashMap<String, Object>(); hashMap.put("Id","1"); hashMap.put("SortId","1"); hashMap.put("AppKey","568898243"); hashMap.put("AppSecret","38a4f8204cc784f81f9f0daaf31e02e3"); hashMap.put("RedirectUrl","http://www.sharesdk.cn"); hashMap.put("ShareByAppClient","true"); hashMap.put("Enable","true"); ShareSDK.setPlatformDevInfo(SinaWeibo.NAME,hashMap);
方法需要在Sharesdk.initSDK()方法后調(diào)用,如果調(diào)用了ShareSDK.stopSDK()需要在ShareSDK.initSDK后重新調(diào)用ShareSDK.setPlatformDevInfo()方法。 關(guān)于應(yīng)用信息不同字段的更詳細(xì)解釋?zhuān)梢詤⒖糞hareSDK.xml文件頭部的說(shuō)明。
第四步:配置AndroidManifest.xml
不同的集成度需要在AndroidManifest.xml中添加的內(nèi)容不一樣。但是首先您需要添加下面的權(quán)限列表:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> <uses-permission android:name="android.permission.GET_ACCOUNTS"/> <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.GET_TASKS"/> <uses-permission android:name="android.permission.INTERNET"/>
這些權(quán)限將允許您的項(xiàng)目和ShareSDK判斷當(dāng)前應(yīng)用是否“前置”、獲取連接網(wǎng)絡(luò)的權(quán)限、獲取您的設(shè)備網(wǎng)絡(luò)狀態(tài)的權(quán)限、實(shí)現(xiàn)https安全連接的權(quán)限、讀取手機(jī)設(shè)備狀態(tài)的權(quán)限和保存必要配置的權(quán)限。一般來(lái)說(shuō),即便不集成ShareSDK,大部分的項(xiàng)目也都會(huì)注冊(cè)申請(qǐng)這些權(quán)限。
其次,為了授權(quán)操作可以順利完成,需要在application下注冊(cè)下面的Activity:
<activity android:name="com.mob.tools.MobUIShell" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="keyboardHidden|orientation|screenSize" android:screenOrientation="portrait" android:windowSoftInputMode="stateHidden|adjustResize" />
如果您的項(xiàng)目集微信或者微信朋友圈,請(qǐng)查看AndroidManifest.xml配置文件里的package路徑,需要在package目錄下創(chuàng)建wxapi目錄再放置WXEntryActivity。 沒(méi)有此activity在微信分享后回調(diào)會(huì)檢查是否有此activity,沒(méi)有將會(huì)報(bào)錯(cuò)。
<activity android:name=".wxapi.WXEntryActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" />
而如果您的項(xiàng)目集易信的兩個(gè)平臺(tái),請(qǐng)查看AndroidManifest.xml配置文件里的package路徑需要在package目錄下創(chuàng)建yxapi目錄在放置回調(diào)Activity:
<activity android:name=".yxapi.YXEntryActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" />
客戶端的操作回調(diào),因此ShareSDK也無(wú)法給予您操作回調(diào)。為了避免出錯(cuò),請(qǐng)使用相對(duì)路徑的方式,直接復(fù)制上面的代碼到您的AndroidManifest.xml中即可。
第五步:添加代碼
打開(kāi)您項(xiàng)目的入口Activity,在其onCreate中插入下面的代碼: 如果使用ShareSDK.xml方式配置調(diào)用
ShareSDK.initSDK(this);
如果使用代碼配置應(yīng)用注冊(cè)信息或者應(yīng)用后臺(tái)配置應(yīng)用注冊(cè)信息,調(diào)用
ShareSDK.initSDK(this,”androidv1101″);
androidv1101:是你的應(yīng)用在ShareSDK注冊(cè)應(yīng)用信息時(shí)返回的AppKey。 代碼會(huì)初始化ShareSDK,此后對(duì)ShareSDK的操作都以此為基礎(chǔ)。如果不在所有ShareSDK的操作之前調(diào)用這行代碼,會(huì)拋出空指針異常。
效果圖:
- Android編程實(shí)現(xiàn)調(diào)用系統(tǒng)分享功能示例
- 詳解微信小程序開(kāi)發(fā)—你期待的分享功能來(lái)了,微信小程序序新增5大功能
- 網(wǎng)頁(yè)上facebook分享功能具體實(shí)現(xiàn)
- JS中靜態(tài)頁(yè)面實(shí)現(xiàn)微信分享功能
- 微信JS-SDK自定義分享功能實(shí)例詳解【分享給朋友/分享到朋友圈】
- Android 微信圖片分享功能
- Android調(diào)用系統(tǒng)自帶的分享功能實(shí)例代碼
- 詳解Android系統(tǒng)中跨應(yīng)用數(shù)據(jù)分享功能的實(shí)現(xiàn)
- Android實(shí)現(xiàn)截圖和分享功能的代碼
- 關(guān)于Android實(shí)現(xiàn)簡(jiǎn)單的微信朋友圈分享功能
- Android實(shí)現(xiàn)調(diào)用系統(tǒng)分享功能示例的總結(jié)
相關(guān)文章
Android Studio下載更新Android SDK網(wǎng)絡(luò)異?;驘o(wú)法下載
這篇文章主要介紹了Android Studio下載更新Android SDK網(wǎng)絡(luò)異常或無(wú)法下載的相關(guān)資料,需要的朋友可以參考下2017-04-04Android仿餓了么加入購(gòu)物車(chē)旋轉(zhuǎn)控件自帶閃轉(zhuǎn)騰挪動(dòng)畫(huà)的按鈕效果(實(shí)例詳解)
這篇文章主要介紹了Android仿餓了么加入購(gòu)物車(chē)旋轉(zhuǎn)控件自帶閃轉(zhuǎn)騰挪動(dòng)畫(huà)的按鈕效果(實(shí)例詳解)的相關(guān)資料,需要的朋友可以參考下2017-01-01Android開(kāi)發(fā)之Fragment懶加載的幾種方式及性能對(duì)比
這篇文章主要介紹了Android開(kāi)發(fā)之Fragment懶加載的幾種方式及性能對(duì)比的相關(guān)資料,具體詳細(xì)介紹需要的小伙伴可以參考下面文章內(nèi)容2022-05-05Android編程中Tween動(dòng)畫(huà)和Frame動(dòng)畫(huà)實(shí)例分析
這篇文章主要介紹了Android編程中Tween動(dòng)畫(huà)和Frame動(dòng)畫(huà),結(jié)合實(shí)例形式較為詳細(xì)的分析了Android中Tween動(dòng)畫(huà)和Frame動(dòng)畫(huà)的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-12-12Android studio 解決logcat無(wú)過(guò)濾工具欄的操作
這篇文章主要介紹了Android studio 解決logcat無(wú)過(guò)濾工具欄的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04Android 用adb pull或push 拷貝手機(jī)文件到到電腦上,拷貝手機(jī)數(shù)據(jù)庫(kù)到電腦上,拷貝電腦數(shù)據(jù)庫(kù)到手機(jī)上
這篇文章主要介紹了Android 用adb pull或push 拷貝手機(jī)文件到到電腦上,拷貝手機(jī)數(shù)據(jù)庫(kù)到電腦上,拷貝電腦數(shù)據(jù)庫(kù)到手機(jī)上 的相關(guān)資料,需要的朋友可以參考下2016-01-01Android開(kāi)關(guān)控件Switch的使用案例
今天小編就為大家分享一篇關(guān)于Android開(kāi)關(guān)控件Switch的使用案例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03android 調(diào)用JNI SO動(dòng)態(tài)庫(kù)的方法
android 調(diào)用JNI 分為靜態(tài)調(diào)用與動(dòng)態(tài)調(diào)用,接下來(lái)通過(guò)本文給大家介紹android 調(diào)用JNI SO動(dòng)態(tài)庫(kù)的方法,感興趣的朋友一起看看吧2021-11-11