現在越來越多的應用都整合了社交分享功能,國內用的比較多的就是 友盟和Mob 分享,今天以Mob分享為例,來完整介紹一個整合的案例。
1. 獲取ShareSDK的AppKey,去官方新增一個Project就得到了
2. 下載SDK,我下載的是 2.7.7
,然後解壓檔案
3. 匯入ShareSDK
(1)建議採用快速生成方式,直接執行 QuickIntegrater.jar
(2)在自己的專案中引入剛剛生成的 Sample 檔案下的:assets資料夾
、src下面的WXEntryActivity
、res資料夾
,不需要引入其他的
(3)將第2步中解壓中的Libs資料夾下的 OnekeyShare、ShareSDK 作為Library引入自己的專案 注意,此時OnekeyShare可能會報錯,原因是OnekeyShare依賴ShareSDK,重新設定一下依賴關係即可
4.配置AndroidManifest.xml,這個就參考官方文件即可
(1)新增許可權
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.INTERNET" />
<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.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
複製程式碼
(2)配置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" >
<intent-filter>
<data android:scheme="tencent100371282" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<!-- 呼叫新浪原生SDK,需要註冊的回撥activity -->
<intent-filter>
<action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<!--微信分享回撥 -->
<activity
android:name=".wxapi.WXEntryActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait" />
複製程式碼
(3)配置自己的key 找到assets目錄下的ShareSDK.xml檔案,在這個檔案中進行相關分享的配置,將陰影部分換成自己第一步申請的key
5.分享程式碼,我只是簡單弄了一個按鈕,在按鈕的點選事件中新增如下程式碼
ShareSDK.initSDK(this);
OnekeyShare oks = new OnekeyShare();
// 關閉sso授權
oks.disableSSOWhenAuthorize();
// title標題,印象筆記、郵箱、資訊、微信、人人網和QQ空間使用
oks.setTitle("這是我的第一次分享");
// titleUrl是標題的網路連結,僅在人人網和QQ空間使用
oks.setTitleUrl("http://sharesdk.cn");
// text是分享文字,所有平臺都需要這個欄位
oks.setText("這是一次完整的分享案例,謝謝支援~~~");
// 分享網路圖片,新浪微博分享網路圖片需要通過稽核後申請高階寫入介面,否則請註釋掉測試新浪微博
oks.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");
// imagePath是圖片的本地路徑,Linked-In以外的平臺都支援此引數
// oks.setImagePath("/sdcard/test.jpg");//確保SDcard下面存在此張圖片
// url僅在微信(包括好友和朋友圈)中使用
oks.setUrl("http://sharesdk.cn");
// comment是我對這條分享的評論,僅在人人網和QQ空間使用
oks.setComment("評論");
// site是分享此內容的網站名稱,僅在QQ空間使用
oks.setSite(getString(R.string.app_name));
// siteUrl是分享此內容的網站地址,僅在QQ空間使用
oks.setSiteUrl("http://sharesdk.cn");
// 啟動分享GUI
oks.show(this);
複製程式碼
如果想知道不同平臺分享內容的詳細說明,請參考官方文件 http://wiki.mob.com/不同平臺分享內容的詳細說明/
6.測試
此時,騰訊微博、QQ空間和QQ都可以分享成功,如下圖所示,但新浪微博、微信相關是分享失敗的。新浪微博是分享失敗,微信直接閃一下就 Game Over了,原因是這兩個平臺還需要配置,但是由於這兩個平臺需要真實的專案才可以配置,等有機會我再補上。