2017-09-21 6 views
2

J'utilise Facebook Android SDK version 4.25 et ShareLinkContent, ShareDialog pour l'affichage à Facebook au nom d'utilisateur à l'aide de mon application.Utilisation de Facebook android SDK ShareDialog. Cliquer sur le bouton croix de sharedialog revenir à l'application avec rappel onSuccess

C'est la boîte de dialogue qui ouvre lorsque l'utilisateur clique sur la fonctionnalité de partage de mon application

enter image description here

Il y a deux icônes croix en sharedialog comme vous pouvez le voir dans l'image. Lorsque je clique sur l'icône de la croix supérieure, le closialog se referme et le rappel onCancel est appelé.

Le problème est quand je suis cliquant sur l'icône de rappel traverse inférieure est de même appelé quand je suis cliqué sur le bouton Post. Je veux donner quelques points à l'utilisateur lorsqu'il partage des messages sur Facebook. Mais je reçois un rappel de succès sur l'icône de la croix inférieure. Que faire? Je vous remercie.

Voici le code de rappel je suis en utilisant: -

shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() { 

    @Override 
    public void onSuccess(Sharer.Result result) { 

      Log.e(LOG_TAG, "Facebook share success " + result.getPostId()); 

    } 

    @Override 
    public void onCancel() { 

      Log.e(LOG_TAG, "Facebook share cancel"); 

    } 

    @Override 
    public void onError(FacebookException error) { 

      Log.e(LOG_TAG, "Facebook share error"); 

    } 

}); 

Répondre

0

Lorsque vous cliquez sur la croix supérieure, vous fermez en fait votre propre boîte de dialogue, qui appelle onCancel. Mais lorsque vous cliquez sur la croix inférieure, il est en réalité en vue facebook. Ainsi, le rappel est renvoyé par Facebook et non par votre boîte de dialogue. Essayez:

@Override 
public void onSuccess(Sharer.Result result) { 
    Log.e(LOG_TAG, "Facebook share success " + result.getPostId()); 
    //Notice this post id in both, cross click and when the status is updated successfully 
    //So, if you don't get a valid post id returned, you can count it as a cancel. 
} 
+0

résultat.getPostId() est nul pour les deux cas, cliquez sur le bouton de la croix inférieure et cliquez sur le bouton. – ankiraw91

+0

Etes-vous en mesure de poster quelque chose sur Facebook à travers cela. Peut-être le problème est avec votre intégration de Facebook, parce que si le message est mis à jour avec succès, vous auriez obtenu un postid défini. –

+0

Oui, le message affiché sur Facebook s'affiche correctement dans la chronologie. J'ai aussi testé avec un autre compte Facebook. – ankiraw91