美文网首页
Android uemgn分享回调。细节

Android uemgn分享回调。细节

作者: Colin高宏杰 | 来源:发表于2018-07-16 11:24 被阅读0次

    一、友盟QQ分享不走回调方法

    集成友盟社会化分享后,除了QQ、QQZone以外,其他分享都能正常显示分享成功、取消分享,而QQ和QQ空间明明分享成功了,但是并没有走回调方法,不显示成功失败或者取消。原因很可能是你的分享代码代码写在了Fragment中,QQ分享成功后并不走Fragment的onActivityResult()方法,需要把分享的方法写在Activity中,并在onActivityResult方法中添加回调监听,然后在Fragment中调用Activity中的分享方法即可。

    @Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);    UMShareAPI.get(context).onActivityResult(requestCode, resultCode, data);}

    二、友盟QQ分享成功但是始终显示分享取消

    QQ分享成功后,但是总是显示取消分享,原因可能是在AndroidManifest中没有给QQ的AuthActivity配置正确的scheme,scheme应该是“tencent”加上QQ的AppID。

                                           

    其中UMENG_QQ格式为“tencent+APPID”。

    private void screenshot() {

    Bitmap bmp;

            // 获取屏幕

            View dView = findViewById(R.id.ly_invite);

            dView.setDrawingCacheEnabled(true);

            dView.buildDrawingCache();

            bmp = dView.getDrawingCache();

            if (bmp !=null) {

    try {

    // 获取内置SD卡路径

                    String sdCardPath = Environment.getExternalStorageDirectory().getPath();

                    // 图片文件路径

                    String filePath = sdCardPath + File.separator +"aoqu_share.png";

                    File file =new File(filePath);

                    FileOutputStream os =new FileOutputStream(file);

                    bmp.compress(Bitmap.CompressFormat.PNG, 100, os);

                    os.flush();

                    os.close();

                }catch (Exception e) {

    }

    }

    UMImage imagebmp =new UMImage(this, bmp);//bitmap文件

            new ShareAction(this)

    .setDisplayList( SHARE_MEDIA.QQ, SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE, SHARE_MEDIA.QZONE, SHARE_MEDIA.WEIXIN_FAVORITE)

    //                        .withText("我在奥趣抓娃娃快来一起玩")

                    .withMedia(imagebmp)

    .setCallback(new UMShareListener() {

    @Override

                        public void onStart(SHARE_MEDIA share_media) {

    }

    @Override

                        public void onResult(SHARE_MEDIA share_media) {

    }

    @Override

                        public void onError(SHARE_MEDIA share_media, Throwable throwable) {

    }

    @Override

                        public void onCancel(SHARE_MEDIA share_media) {

    }

    }).setCallback(shareListener).open();

        }

    private UMShareListenershareListener =new UMShareListener() {

    /**

            * @descrption 分享开始的回调

            * @param platform 平台类型

    */

            @Override

            public void onStart(SHARE_MEDIA platform) {

    }

    /**

            * @descrption 分享成功的回调

            * @param platform 平台类型

    */

            @Override

            public void onResult(SHARE_MEDIA platform) {

    Toast.makeText(InviteActivity.this,platform+"成功了", Toast.LENGTH_LONG).show();

    //            share(shareType);

            }

    /**

            * @descrption 分享失败的回调

            * @param platform 平台类型

            * @param t 错误原因

    */

            @Override

            public void onError(SHARE_MEDIA platform, Throwable t) {

    Toast.makeText(InviteActivity.this, platform+"失败" + t.getMessage(), Toast.LENGTH_LONG).show();

            }

    /**

            * @descrption 分享取消的回调

            * @param platform 平台类型

    */

            @Override

            public void onCancel(SHARE_MEDIA platform) {

    Toast.makeText(InviteActivity.this, platform+"取消了", Toast.LENGTH_LONG).show();

            }

    };

        @Override

        protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    super.onActivityResult(requestCode, resultCode, data);

            UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);

        }

    相关文章

      网友评论

          本文标题:Android uemgn分享回调。细节

          本文链接:https://www.haomeiwen.com/subject/eugvpftx.html