本文介绍了Android的SDK Facebook的分享对话框:不会再回来完成手势的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是用我的应用程序的一封邮件分享Facebook的Andr​​oid SDK中v3.5版本。统计我需要跟踪如果消息发布成功与否。不过,我总在的onActivityResult得到空通过让 FacebookDialog.getNativeDialogCompletionGesture ()

I am using facebook android sdk v3.5 in my app for messsage sharing. For statistics I need to track if the message was successfully posted or not. However I always get null by getting FacebookDialog.getNativeDialogCompletionGesture in onActivityResult()

在code我用的是很标准的。

The code I use is very standard.

code调用Facebook共享对话框:

Code to call facebook share dialog:

    private void sendToFacebook()
    {
        if (!FacebookDialog.canPresentShareDialog(getActivity().getApplicationContext(),        FacebookDialog.ShareDialogFeature.SHARE_DIALOG))
        {
         return;
        }

        FacebookDialog shareDialog = new FacebookDialog.ShareDialogBuilder(getActivity())
                .setName(getString(R.string.refer_friend_facebook_name))
                .setDescription(getString(R.string.refer_friend_facebook_description))
                .setCaption(getString(R.string.facebook_app_name))
                .setLink(getString(R.string.web_endpoint))
                .setPicture(getString(R.string.facebook_picture_90))
                .build();

        activity.getFacebookUiHelper().trackPendingDialogCall(shareDialog.present());

    }

code我使用过程调用结果:

Code I use to process call result:

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data)
    {
            facebookUiHelper.onActivityResult(requestCode, resultCode, data, new FacebookDialog.Callback()
            {
                @Override
                public void onError(FacebookDialog.PendingCall pendingCall, Exception error, Bundle data)
                {
                 // track on error                                                   
                }

                @Override
                public void onComplete(FacebookDialog.PendingCall pendingCall, Bundle data)
                {
                    if (FacebookDialog.getNativeDialogDidComplete(data))
                    {
                        if (FacebookDialog.getNativeDialogCompletionGesture(data) == null 
                              || FacebookDialog.COMPLETION_GESTURE_CANCEL.equals(FacebookDialog.getNativeDialogCompletionGesture(data)))
                        {
                            // track cancel                                                   
                        }
                        else
                        {
                            // track post
                        }
                    }
                    else
                    {
                        // track cancel              
                    }
                }
            });
}

在Facebook的SDK文档更说明:

In facebook sdk documentation it is stated that:

FacebookDialog.getNativeDialogCompletionGesture - 仅当用户登录到使用Facebook的应用并没有完全是真实的。值是后或取消。

但我不明白究竟是什么,他们用这个短语的意思。

But I can not understand what exactly do they mean by this phrase.

推荐答案

这意味着你只能获得completionGesture如果用户具有权威性埃德您的应用程序(即他们已经通过点击Facebook的按钮某种形式的登录上您的应用程序,并给您的应用程序至少基本的权限)。

It means that you only get the completionGesture if the user has "auth"ed your app (i.e. they've clicked on some form of login via Facebook button in your app, and gave your app at least basic permissions).

如果他们没有,那么你得到的是getNativeDialogDidComplete,它总是返回true(用户是否点击共享或取消),除非发生了错误。

If they have not, then all you get is getNativeDialogDidComplete, which always returns true (whether the user clicked "Share" or "Cancel") unless an error occurred.

这篇关于Android的SDK Facebook的分享对话框:不会再回来完成手势的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-02 07:00