Android開發之社會化分享功能整合

YungFan發表於2017-12-13

現在越來越多的應用都整合了社交分享功能,國內用的比較多的就是 友盟和Mob 分享,今天以Mob分享為例,來完整介紹一個整合的案例。

1. 獲取ShareSDK的AppKey,去官方新增一個Project就得到了

2. 下載SDK,我下載的是 2.7.7,然後解壓檔案

3. 匯入ShareSDK

(1)建議採用快速生成方式,直接執行 QuickIntegrater.jar

執行jar檔案.PNG

jar檔案.PNG

(2)在自己的專案中引入剛剛生成的 Sample 檔案下的:assets資料夾src下面的WXEntryActivityres資料夾,不需要引入其他的

(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

配置Shared的key.PNG

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.測試

首次執行結果.jpg

此時,騰訊微博、QQ空間和QQ都可以分享成功,如下圖所示,但新浪微博、微信相關是分享失敗的。新浪微博是分享失敗,微信直接閃一下就 Game Over了,原因是這兩個平臺還需要配置,但是由於這兩個平臺需要真實的專案才可以配置,等有機會我再補上。

QQ分享.jpg
QQ空間分享.jpg
騰訊微博分享.jpg

相關文章