Android實現Facebook第三方分享
最近專案需要整合Facebook的分享功能,在網上看了一些實現例子,用的方法感覺比較老了。Facebook最新的Api已經換了很多。下面我就將最新的整合方式分享給大家。
facebook官方提供的整合方式已經很清晰了,我們只是對其進行了封裝。想具體瞭解的可以去看下 facebook整合官網 官網需要翻牆才能browse。
下面來看下我們的封裝類:
/** * facebook分享工具類 * Created by Song on 2016/7/5. * Email:songxueliang@huiqu.co */ public class FaceBookShareUtils { private Activity mActivity ; private ShareDialog shareDialog; private CallbackManager callBackManager; public static final int SHARE_REQUEST_CODE = 0x111; private ShareLinkContent.Builder shareLinkContentBuilder; public FaceBookShareUtils(Activity activity, CallbackManager callBackManager, FacebookCallback facebookCallback) { this.mActivity = activity ; this.callBackManager = callBackManager; shareDialog = new ShareDialog(mActivity); //註冊分享狀態監聽回撥介面 shareDialog.registerCallback(callBackManager, facebookCallback, FaceBookShareUtils.SHARE_REQUEST_CODE); shareLinkContentBuilder = new ShareLinkContent.Builder(); } /** * 分享 */ public void share(String contentTitle,String imageUrl,String desc) { shareLinkContentBuilder.setContentTitle(contentTitle) .setImageUrl(Uri.parse(imageUrl)) .setContentDescription(desc) .setContentUrl(Uri.parse(mActivity.getString(R.string.app_site))); ShareLinkContent shareLinkContent = shareLinkContentBuilder.build(); if(shareDialog.canShow(ShareLinkContent.class)) { shareDialog.show(mActivity,shareLinkContent); } } }程式碼的封裝流程很簡單:
(1)在構造方法中初始化facebook分享的類,以及註冊分享狀態的監聽介面。
(2)定義share方法,設定要分享的內容。
上面的定義好之後,我們在Activity或Fragment中呼叫如何程式碼:
/** * 分享到facebook */ @Override public void shareFaceBook() { callBackManager = CallbackManager.Factory.create(); new FaceBookShareUtils(this,callBackManager,facebookCallback) .share(mCourse.sName, mCourse.sPics.get(0), mCourse.tDesc); }
可以看到我們的FaceBookShareUtils工具類的第三個引數為狀態的回撥介面,定義如下:
/** * facebook分享狀態回撥 */ private FacebookCallback facebookCallback = new FacebookCallback() { @Override public void onSuccess(Object o) { Message msg = Message.obtain(); msg.what = SHARE_COMPLETE; mHandler.sendMessage(msg); } @Override public void onCancel() { Message msg = Message.obtain(); msg.what = SHARE_CANCEL; mHandler.sendMessage(msg); } @Override public void onError(FacebookException error) { Message msg = Message.obtain(); msg.what = SHARE_ERROR; mHandler.sendMessage(msg); } };上面的三個方法分別是分享成功,分享失敗,分享錯誤的回撥。相信做過國內第三方平臺分享的童靴都很清楚了。
然後在onActivityResult方法中呼叫如下方法:
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(FaceBookShareUtils.SHARE_REQUEST_CODE == requestCode) { callBackManager.onActivityResult(requestCode,resultCode,data); } }
上面即用於接收分享的狀態。
最後一步,需要我們在AndroidManifest.xml中配置如下程式碼:
<!--Facebook--> <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/> <activity android:name="com.facebook.FacebookActivity" android:configChanges= "keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:label="@string/app_name" /> <provider android:authorities="com.facebook.app.FacebookContentProvider259759727729348" android:name="com.facebook.FacebookContentProvider" android:exported="true" />上面的ApplicationId就是在Facebook開發者平臺上申請的Id。如果App釋出的話,還需要進行稽核等。
OK,到這裡,facebook的分享整合就搞定啦,下篇文章我將會和大家分享下如何整合Facebook登入功能~
相關文章
- java 部落格分享實現--facebook--linkeinJava
- IPIDEA分享|Facebook賬號如何實現安全運營?Idea
- 實現Facebook SDK
- 簡單實現第三方qq登入和分享
- 快速實現抖音的分享&登入(android)Android
- Facebook 網頁分享網頁
- Android-使用Android Studio實現第三方QQ登入Android
- Android技術分享| 【你畫我猜】Android 快速實現Android
- Android元件化demo實現以及遇坑分享Android元件化
- 利用 Android 系統原生 API 實現分享功能AndroidAPI
- 第三方登入/分享最佳實踐
- 利用 Android 系統原生 API 實現分享功能(2)AndroidAPI
- Android不使用第三方升級庫實現應用升級Android
- Android面試題---真實分享Android面試題
- 實現友盟分享
- 實現微信分享功能
- meteor 實現 微信分享
- Flutter 分享功能:facebook,whatsapp,twitter和系統分享FlutterAPP
- 如何透過代理IP實現Facebook群控?
- HashTable實現程式碼分享
- 微信分享自定義實現
- Java實現QQ第三方登入Java
- AllFacebook:Facebook應用領先iPhone和Android總和iPhoneAndroid
- Android元件化實踐專案分享Android元件化
- Android 動畫實現Android動畫
- OAuth2原理與LinkedIn的第三方分享實戰OAuth
- 【Bugly安卓開發乾貨分享】Android APP 快速 Pad 化實現安卓AndroidAPP
- [譯] 用 Flutter 實現 Facebook 的響應式按鈕Flutter
- php實現第三方登入,百度第三方登入PHP
- FaceBook出品 -- Android除錯神器StethoAndroid除錯
- Android實際開發中實用的第三方(開源)框架Android框架
- Android應用之最新版本SDKV2.4實現QQ第三方登入Android
- Android技術分享|【自定義View】實現Material Design的Loading效果AndroidViewMaterial Design
- Android元件化實現Android元件化
- Android 動畫框架實現Android動畫框架
- Qt Android 實現全屏QTAndroid
- laravel實現第三方qq一鍵登入Laravel
- android studio 打包簽名apk,完成微信和qq的的第三方分享功能AndroidAPK