我最近將我的應用程序移至了FB SDK 4.0,並且我在分享時遇到了一些奇怪的麻煩。共享對話框效果很好 - 我可以與Facebook應用程序和WebDialog共享。但是,在成功/失敗後,我的回叫功能根本不起作用 - 因此我甚至無法顯示敬酒或記錄任何內容。 這裏是我該怎麼辦:共享回調並不適用於Facebook SDK 4 Android
shareDialog.registerCallback(fbManager, new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Sharer.Result result) {
// This doesn't work
Toast.makeText(f.getActivity(), "You shared this post", Toast.LENGTH_SHORT).show();
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException e) {
// This doesn't work
e.printStackTrace();
}
});
我甚至試過調試應用程序 - 沒有影響 - 該代碼甚至沒有被調用。
所以你可以指點我做錯了什麼,或者我錯過了什麼?
更新
由於我使用的是特殊的類與FB SDK的工作,這裏是它的一部分:
private static CallbackManager fbManager;
public static CallbackManager init(Activity c) {
if (!FacebookSdk.isInitialized()) {
FacebookSdk.sdkInitialize(c);
}
return fbManager = CallbackManager.Factory.create();
}
...
public static void share(final Fragment f, final String title, final String description, final String link) {
ShareDialog shareDialog = new ShareDialog(f);
shareDialog.registerCallback(fbManager, new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Sharer.Result result) {
Toast.makeText(f.getActivity(), "You shared this post", Toast.LENGTH_SHORT).show();
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException e) {
e.printStackTrace();
}
});
shareDialog.show(f, composeContent(title, description, link));
這裏,它看起來像在片段:
private CallbackManager callbackManager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
callbackManager = FacebookHelper.init(getActivity());
}
...
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
callbackManager.onActivityResult(requestCode, resultCode, data);
}
private void publishStory() {
FacebookHelper.share(this,
"Title",
getResources().getString(R.string.sharing_text),
sharingLink);
}
發表您的整個活動/片段請 –
@DavidJhons更新我的問題 –