開場白 依然給大臉書
承接上一篇 android 集成facebook的登錄功能
首先分享功能 要在清單文件中添加如下內容提供者:
<provider android:authorities="com.facebook.app.FacebookContentProvider{APP_ID}"
android:name="com.facebook.FacebookContentProvider"
android:exported="true"/>
主要介紹Link分享的模板
包含的內容:
a contentTitle 標題
a imageURL, 圖片url
a contentDescription of the content, 描述
圖片摘自:facebook官方
舉個栗子:
//創建一個shareLinkCOntent,
Builder linkContent = new ShareLinkContent.Builder()
.setContentTitle(title)
.setContentDescription(text)
.setShareHashtag(shareHashtagBuilder.build())
.setImageUrl(imgUri);
if(null != link && link.length > 0){
linkContent.setContentUrl(Uri.parse(link[0]));
}else{
linkContent.setContentUrl(Uri.parse(GlobalInfo.getInstance(activity).getShareUrl()));
}
ShareLinkContent sc = linkContent.build();
解釋一個setShareHashtag這個是一個標籤,就是在發佈的時候自動加上的,當然用戶可以去掉
怎麼創建ne,也是採用的構建者模式的鏈式調用
ShareHashtag.Builder shareHashtagBuilder = new ShareHashtag.Builder();
shareHashtagBuilder.setHashtag("#HelloWorld");
這樣就可以了嗎 no
我們一般是調用用戶的facebook的客戶端進行post,就像我們分享到新浪微博,直接掉微博客戶端
這裏就用到了ShareDialog,加如滅有客戶端,則調用web端
就像登錄一樣,我們一樣要設置回調接口
public class MainActivity extends FragmentActivity {
CallbackManager callbackManager;
ShareDialog shareDialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
callbackManager = CallbackManager.Factory.create();
shareDialog = new ShareDialog(this);
// 這是可選的,你如果不使用也是不影響的
shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() { ... });
}
這是必須的
@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
然後shareDialog.show(sc);
就可以展示了