允许/可能激励共享吗?

时间:2015-06-02 23:56:58

标签: android facebook android-intent android-sharing

我希望鼓励用户参与我的应用,在社交媒体(Twitter,Google +或Facebook)上分享内容时,通过奖励他们一次性优势(我认为是一种能力)。

我的第一个问题是,Google Play商店认为这是否可以接受?

我的下一个问题(假设我的第一个答案是肯定的),是如何确保用户已完成分享所以我不会奖励已取消的分享意图?

我最初的尝试主要集中在Facebook上,我已经设置了Facebook SDK,在Facebook上注册了我的应用程序并且可以完成共享,但正如其他人已经表明的那样,无论用户是取消还是发布,共享结果都是相同的。我注意到,herehere提出了类似的问题。但这些都没有令人满意的解决方案。

This answer听起来很有希望,但我不认为“会话”类型是Facebook SDK的一部分。

我现在的实现在片段中使用它来响应用户按下按钮:

        if (ShareDialog.canShow(ShareLinkContent.class)) {
            ShareLinkContent linkContent = new ShareLinkContent.Builder()
                    .setContentTitle("My Title")
                    .setContentDescription("My Description.")
                    .setContentUrl(Uri.parse("https://play.google.com/store/apps/details?id=com.cloudforge.svn.bbarrett.floattiles"))
                    .build();

            MainActivity.shareDialog.show(linkContent);

然后在我的主要活动中我有方法:

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

我从调试中注意到,当用户取消和发布时,“resultCode”为-1。

最后在MainActivity.onCreate()方法中,我有:

    FacebookSdk.sdkInitialize(this.getApplicationContext());
    callbackManager = CallbackManager.Factory.create();
    shareDialog = new ShareDialog(this);
    shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {

        @Override
        public void onSuccess(Sharer.Result result) {
            // TODO Auto-generated method stub
            if(result.getPostId()!=null){
                Toast.makeText(getBaseContext(), "User posted! (but this is never called as postId is always null)", Toast.LENGTH_LONG).show();
            }else{
                Toast.makeText(getBaseContext(), "User didn't post? (but this is called even when they have posted as postId is always null)", Toast.LENGTH_LONG).show();
            }
        }

        @Override
        public void onCancel() {
            // TODO Auto-generated method stub

            Toast.makeText(getBaseContext(), "User Cancelled (but this is never called)", Toast.LENGTH_LONG).show();
        }

        @Override
        public void onError(FacebookException error) {
            // TODO Auto-generated method stub
            Toast.makeText(getBaseContext(), "Exception occurred", Toast.LENGTH_LONG).show();
        } 
        });

我不认为我的用户会特别有动力去分享,除非他们从这样做获得游戏优势,所以我真的希望有人可以帮我确认一篇成功的Facebook帖子(我接下来会与Google+和Twitter打交道!)

提前感谢所有阅读,赞成和回答。

0 个答案:

没有答案