2017-10-29 141 views
0

ShareDialog的registerCallback方法不起作用。沒有爲任何的registerCallback方法顯示Toast。只有共享對話框顯示。Facebook sdk ShareDialog registerCallback方法不工作 - Facebook Android SDK

要求 - 我想知道用戶是否成功地共享帖子或丟棄它。

private void shareRateButtonClickListeners() { 
    flFbShare.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       ShareLinkContent linkContent = new ShareLinkContent.Builder() 
         .setContentUrl(Uri.parse("http://androidlift.info")) 
         .build(); 
       shareDialog.show(getActivity(), linkContent); 

      } 
     }); 

    callbackManager = CallbackManager.Factory.create(); 
     shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() { 
      @Override 
      public void onSuccess(Sharer.Result result) { 
       Toast.makeText(getActivity().getApplicationContext(), "Share success!", Toast.LENGTH_SHORT).show(); 
       Log.e(TAG,"Fb onSuccess"); 
      } 

      @Override 
      public void onCancel() { 
       Toast.makeText(getActivity().getApplicationContext(), "Did not share", Toast.LENGTH_SHORT).show(); 
       Log.e(TAG,"Fb onCancel"); 
      } 

      @Override 
      public void onError(FacebookException error) { 
       Toast.makeText(getActivity().getApplicationContext(), "Error", Toast.LENGTH_SHORT).show(); 
       Log.e(TAG,"Fb onError"); 
      } 
     }, 90); 
} 

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     callbackManager.onActivityResult(requestCode, resultCode, data); 
    } 

回答

0

請確保您的活動有實現這個功能

@Override 
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) { 
super.onActivityResult(requestCode, resultCode, data); 
callbackManager.onActivityResult(requestCode, resultCode, data); 
} 

文件:https://developers.facebook.com/docs/sharing/android/

+0

它已經在那裏! –