最近在開發一個社交平臺的app須要用到分享功能,原本想本身開發的,在網上花了很長時間查了不少教程結果卻不盡人意,無心中看到還有相似的開源組件友推,結合本身的開發經驗,把一些集成步驟和問題整理成文檔奉獻給你們,但願能幫助各位開發者提升開發效率。android
集成步驟:api
第一步:微信
進入友推官網申請appkey http://youtui.mobi/user/reg 微信開發
第二步:app
下載最新版的友推sdk包,包裏提供了集成demo。eclipse
第三步:工具
集成前您須要爲您的應用在須要集成的社交網站開放平臺申請帳號(通常一個工做日可完成審覈),不然只能調用系統的分享菜單,沒法跟蹤分享的回調事件及統計。網站
QQ、QQ空間的可使用友推提供的appkey,新浪微博、騰訊微博的也可使用友推提供的appkey(但沒法使用SSO免登,消息來源顯示友推),微信、人人網的需要本身應用申請。ui
第四步:spa
1.引用友推庫項目-> 2.註冊須要分享的平臺 -> 3.AndroidManifest.xml註冊權限、activity ->4.初始化友推並調用
4.1 引用友推庫項目
將youtui-lib項目庫和應用工程放在同一個目錄下,在 Package Explorer 中右鍵點擊工程的根目錄,選擇 Properties(屬性),而後點擊,在Android選項點擊Add添加youtui-lib。
4.2註冊須要分享的平臺
1.配置各分享平臺key,該配置文件爲youtui_sdk.xml,配置完放入工程的assets文件夾。
2.若是須要分享到哪一個平臺就將該平臺的Enable屬性設置爲true.
3.若是須要將某個平臺排列到前面,只須要改變它在youtui_sdk.xml文件中的位置便可。
4.QQ、QQ空間的可使用友推提供的appkey,新浪微博、騰訊微博的也可使用友推提供的appkey(但沒法使用SSO免登,消息來源顯示友推),微信、人人網的需要本身應用申請。
各平臺須要注意的事項:
新浪微博:
SSO免登,新浪微博須要驗證應用簽名,請必定要在新浪開放平臺管理中心應用信息 -> 基本信息 -> Android簽名包名信息 配置該信息
每次包名變化或者使用的.keystore變化都會致使應用簽名變化,請從新到新浪微博開放平臺設置。
運行Demo時若是從新編譯,由於使用的.keystore文件變化也會致使應用簽名變化,致使Demo新浪微博分享沒法正常工做,請運行Demo時使用Demo工程包中提供的debug.keystore替換C:\Users\Administrator\.android中的debug.keystore文件
微信和朋友圈:
微信和朋友圈也須要驗證應用簽名,請在微信開放平臺管理中心修改應用 -> 開發信息配置。
QQ和QQ空間:
QQ和QQ空間使用的是騰訊開放平臺api,請在騰訊開放平臺申請帳號和註冊應用,請不要使用QQ互聯(用於網站帳號登陸)的配置,雖然都是騰訊的,可是兩個平臺並不通用,除了須要在youtui_sdk.xml配置信息,還須要在manifest文件中的android:scheme中的tencent後的一串數字換成本身應用的appid。
4.3 在AndroidManifest.xml 註冊權限
4.4在 AndroidManifest.xml 註冊須要的Activity
4.5微信和朋友圈回調設置
4.6初始化友推
4.7建立 ShareData 實例,調用該實例的set方法設置須要分享的數據
4.8調用友推分享推薦組件
這樣就成功集成了友推的分享推薦功能了,用戶點擊推薦分享按鈕後,界面以下:demo下載 (android)
一些要注意到的地方:
1) v4包版本衝突,解決方法在lib工程和應用工程使用同一個版本的v4包
2) 社交平臺jar包衝突,若是開發者前面引入過度享平臺的開發包,而且和友推sdk使用的開發包衝突,請刪除原先導入的包
3) youtui_sdk.xml填寫錯誤,致使解析異常,沒法讀取開發者註冊信息,請務必正確填寫
4) 新浪微博分享時顯示出錯了或sso package or sign error,請檢查在新浪申請的應用Android簽名設置是否正確,當使用的keystore變化時,注意到新浪開發平臺修改應用簽名
5)我應用的註冊用戶 分享以後 獲得的積分 能夠增長到 個人應用的用戶積分系統裏嗎
答:應用在友推後臺建立了分享送積分的活動,應用用戶分享後得到的積分默認是隻增長到活動的積分裏面的。若是須要增長到應用的積分系統裏,須要在集成的時裝在應用分享成功的事件中加方法來處理。應用用戶分享得到積分的過程當中並不用額外註冊,是記錄到用戶的卡號、設備號裏的。
6)qq和qq空間分享完返回時有問題?
答:qq和qq空間分享完返回時須要使用一個參數appid(在騰訊開放平臺申請)
該參數定義在manifest.xml文件的
<!-- qq受權須要註冊該activity --><activityandroid:name="com.tencent.tauth.AuthActivity"android:launchMode="singleTask"android:noHistory="true" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tencent你的appid" />
</intent-filter>
</activity>
若是該處不設置,qq和qq空間的回調會無效,若是有幾個應用把該處設置爲一樣的id會致使分享完從qq返回時並非直接回到應用,而是要出現一個選擇框從這幾個應用中選擇
7)出現「NullPoint YouTuiAcceptor.getFileName」
答:出現該問題是由於渠道號未配置 ,在manifest.xml 配置<!-- 友推渠道號,應用名(英文或拼音)+"_yt",如:「jd_yt」,用於識別經過友推活動下載的應用,請正確填寫,不然沒法正確統計 --><meta-dataandroid:name="YOUTUI_CHANNEL"android:value="你的apk名字_yt" ></meta-data>
8)爲何demo中微信和新浪微博沒法分享,微信甚至不能調出微信界面?
答:微信和新浪微博須要驗證應用簽名,demo在從新編譯後應用簽名變化致使微信和新浪微博分享沒法正常工做,解決方法爲打開eclipse的preferences-build找到default debug keystore路徑,而後用demo工程中的debug.keystore文件替換默認的debug keystore,而後再進行編譯,這樣生成的demo應該就能夠進行微信和新浪微博的分享了
9)微信分享配置好key和分享信息後點了仍是沒反應
微信須要驗證應用簽名,因此要使用分享的話須要先在微信開發者平臺配置應用簽名.若是不知道本身應用簽名是多少,能夠在微信開發者平臺的資源中心-資源下載-Android資源下載裏面下載簽名生成工具,而後使用該工具查看本身的應用簽名,而後在管理中心-修改應用中設置應用的簽名。