android集成sharesdk遇到的坑无法返回app等

集成sharesdk后    遇到一个问题  分享到微信和朋友圈  点击返回的时候发现无法回到app

    private void sharedToThirdPlatform() {
        OnekeyShare oks = new OnekeyShare();
        //关闭sso授权
        oks.disableSSOWhenAuthorize();
        // title标题,微信、QQ和QQ空间等平台使用
        oks.setTitle("我的标题");
        // titleUrl QQ和QQ空间跳转链接
        oks.setTitleUrl("http://sharesdk.cn");
        // text是分享文本,所有平台都需要这个字段
        oks.setText("震惊,sharesdk竟然。。。");
        // imagePath是图片的网络路径  不设置没有缩略图
        oks.setImageUrl("http://img.mp.sohu.com/upload/20170614/1b236c0dfb2d4d098e08b9b94db043aa.png");
        // imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
//            oks.setImagePath("https://pic3.zhimg.com/80/7d6e12985dfdb526e902443a7dc9abfe_hd.jpg");
        // url在微信、微博,Facebook等平台中使用   跳转地址
        oks.setUrl("http://img.mp.sohu.com/upload/20170614/1b236c0dfb2d4d098e08b9b94db043aa.png");
        // comment是我对这条分享的评论,仅在人人网使用
        oks.setComment("我是测试评论文本");

        oks.setShareContentCustomizeCallback(new ShareContentCustomizeCallback() {
            @Override
            public void onShare(Platform platform, Platform.ShareParams shareParams) {
                if (Wechat.NAME.equals(platform.getName())) {
                    
                }
            }
        });
        // 启动分享GUI
        oks.show(this);
    }

后来按网上的方法将  WXEntryActivity的启动模式设置为android:launchMode="singleTask"就可以了

        
        

但是虽然能返回app了 又遇到另外一个问题    app无法操作  表面覆盖了一层界面 需要点击物理返回键一次才能操作

用sharesdk的回调方法都没有执行  我猜测这一层界面是WXEntryActivity,因为微信开发文档里面就是在这个Activity执行的,我想最终还是会走这个类的方法  然后就尝试在WXEntryActivity的回调方法里面打印   最后发现确实如此   分享成功后点击返回app     baseResp.getType=2

然后就是解决问题了 

    @Override
    public void onResp(BaseResp baseResp) {
       switch (baseResp.getType()){
           case 2:          //微信分享成功返回app的回调
               finish();

               break;
       }
    }

 判断type  如果==2,则说明分享成功    此时finish掉透明的WXEntryActivity界面  然后app就可以操作了

 

另外  附上app下build.gradle文件里面的配置

apply plugin: 'com.mob.sdk'

MobSDK {
    appKey "xxxxxxx"          //自己注册生成的
    appSecret "xxxxxxxxxx"    //自己注册生成的

    ShareSDK {
        devInfo {     
            WechatMoments {                  //朋友圈
                appKey "去微信开放平台申请"
                appSecret "去微信开放平台申请"
                callbackUri "http://www.sharesdk.cn"
                shareByAppClient true
                bypassApproval="false"
            }

            Wechat {                        //微信
                appId "去微信开放平台申请"
                appSecret "去微信开放平台申请"
                userName "gh_afb25ac019c9"
                path "pages/index/index.html?id=1"
                withShareTicket true
                shareByAppClient true    
                miniprogramType 2
                bypassApproval false   
            }

        }
    }
}

 

你可能感兴趣的:(Android)