android通过友盟进行微信分享的坑

刚好项目中遇到了需要通过第三方微信分享,需要用过友盟的平台(因为之前用的事ShareSDK),去看了一下官方文档,顺便记录一下问题和一些分享的细节。

1,添加一些jar包(只需要去官方下载,没有什么大问题),因为我们公司只需要微信分享,朋友圈和qq空间,所以我下载的都是精简版的


2,需要建一个回调的类,记得要继承

WXCallbackActivity,其中一定要注意
 com.XXXX.weixin.callback.WXCallbackActivity;导入的包要正确


3,准备工作做完上代码

  点击事件之后:new ShareAction(InformationDetailedActivity.this)
        .withText("hello22") //文本
        .setPlatform(SHARE_MEDIA.WEIXIN)//分享平台
        .setCallback(shareListener)
        .share();
监听事件:
private UMShareListener shareListener = new UMShareListener() {
    /**
     * @descrption 分享开始的回调
     * @param platform 平台类型
     */
    @Override
    public void onStart(SHARE_MEDIA platform) {
        Log.i("TAG", "onStart: " + "KAISHI LE ");
        SocializeUtils.safeShowDialog(dialog);
    }

    /**
     * @descrption 分享成功的回调
     * @param platform 平台类型
     */
    @Override
    public void onResult(SHARE_MEDIA platform) {
        Toast.makeText(InformationDetailedActivity.this, "成功了", Toast.LENGTH_LONG).show();
        SocializeUtils.safeCloseDialog(dialog);
    }

    /**
     * @descrption 分享失败的回调
     * @param platform 平台类型
     * @param t 错误原因
     */
    @Override
    public void onError(SHARE_MEDIA platform, Throwable t) {
        SocializeUtils.safeCloseDialog(dialog);
        Toast.makeText(InformationDetailedActivity.this, "失败" + t.getMessage(), Toast.LENGTH_LONG).show();
    }

    /**
     * @descrption 分享取消的回调
     * @param platform 平台类型
     */
    @Override
    public void onCancel(SHARE_MEDIA platform) {
        SocializeUtils.safeCloseDialog(dialog);
        Toast.makeText(InformationDetailedActivity.this, "取消了", 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);
}

4,我之前是一直遇到签名有问题,用这个来debug来验证,要在Mainfest中的application 的name中添加哦
 
  

public class APP extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        Config.DEBUG = true;//是否开启
        QueuedWork.isUseThreadPool = false;
        UMShareAPI.get(this);
    }
    //各个平台的配置,建议放在全局Application或者程序入口
    {
        PlatformConfig.setWeixin("KEY", "签名");
        //微信 appid appsecret
        PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");// QQ和Qzone appid appkey
        PlatformConfig.setSinaWeibo("3921700954", "04b48b094faeb16683c32669824ebdad", "http://sns.whalecloud.com"); //新浪微博 appkey appsecret
    }

}
 
  
最后的最后:最值得注意是,如果你的代码没有错,但是回调的方法只执行了onStart()方法,就闪退了,不要意外,那说明是你的签名有问题。值得一提的是,我之前签名验证都没有问题,但是一直走不通,原来是微信开发者平台包名之前改了,需要去重新验证。切记啊!!
 
  



你可能感兴趣的:(android学习笔记,友盟,微信分享)