Android集成新浪微博SDK分享

现在的APP应该必不可少的一个功能就是三方登录和分享,写这篇文章希望给一些新手朋友一些意见少走点弯路,也是让自己在下一次做到分享的时候能不在那么愚蠢。(这应该是史上最笨的微博分享功能实现类的文章了)

首先先下载集成微博的SDK SDK下载地址  

集成很简单,按照文档一步一步的复制粘贴就好了,我用的是android studio直接将aar包考到项目libs下就可以了

Android集成新浪微博SDK分享_第1张图片

然后清单文件中将所需权限(这个官方文档都有)填写上就可以开始码砖了。

在你的微博APP KEY都申请下来之后,将官方Demo中的Constants
这个类可以copy一份在在即的项目中,改一下APP_KEY和回调URL就可以正常使用了。然后初始化你的WBSdk:

WbSdk.install(activity, newAuthInfo(activity,Constants.SinaWeiBo_APP_KEY,Constants.REDIRECT_URL,Constants.SCOPE));

注册你的ShareHandler:

ShareHandler shareHandler;

if(shareHandler==null){

shareHandler=newWbShareHandler(activity);

}

shareHandler.registerApp();



我是将所有的三方分享写在一个自定义Dialog中的,所以这个dialog需要实现WbShareCallback,然后点击微博图标的时候走一个方法就可以了:

private void shareToWeibo() {

     WebpageObject mediaObj =newWebpageObject();

    //创建文本消息对象

    TextObject textObject =newTextObject();

    textObject.text= "你分享内容的描述"+“分享网页的话加上网络地址”;

    textObject.title= getTitle();

    //创建图片消息对象,如果只分享文字和网页就不用加图片

    WeiboMultiMessage message =newWeiboMultiMessage();

    ImageObject imageObject =newImageObject();

    // 设置 Bitmap 类型的图片到视频对象里        设置缩略图。 注意:最终压缩过的缩略图大小 不得超过 32kb。

    Bitmap bitmap = BitmapFactory.decodeResource(getResources() , R.drawable.test);

    imageObject.setImageObject(bitmap);

    message.textObject= textObject;

    message.imageObject= imageObject;

    message.mediaObject= mediaObj;

    shareHandler.shareMessage(message,false);

}



其中的bitmap是网络图片时需要异步请求处理,我用的Glide
的异步图片加载代码如下:

SimpleTarget target =newSimpleTarget() {

@Override

public voidonResourceReady(Bitmap bitmap,GlideAnimation glideAnimation) {

              //这里是主线程处理上面分享的逻辑

WebpageObject mediaObj =newWebpageObject();

//创建文本消息对象

TextObject textObject =newTextObject();

textObject.text= "你分享内容的描述"+“分享网页的话加上网络地址”;

textObject.title= getTitle();

//创建图片消息对象

WeiboMultiMessage message =newWeiboMultiMessage();

ImageObject imageObject =newImageObject();

// 设置 Bitmap 类型的图片到视频对象里         设置缩略图。 注意:最终压缩过的缩略图大小 不得超过 32kb。

imageObject.setImageObject(bitmap);

message.textObject= textObject;

message.imageObject= imageObject;

message.mediaObject= mediaObj;

shareHandler.shareMessage(message,false);

      }

};

Glide.with(activity).load(“图片URL”).asBitmap().into(target);


因为我们做的是影视类的app,所以希望直接分享视频到微博就可以正常播放,但目前版本的SDK还不支持分享视频,所以只能是分享视频网页。

之前都是用的shareSDK就是包含了各家三方平台的分享,但是做了一次下来发现其实ShareSDK并不算好用,另一个三方再给封装一层,不仅会出一些无法解释和自己无法解决的bug还会让真个项目包增大不少,长远考虑建议还是用一个一个的去集成比价合适。

你可能感兴趣的:(Android集成新浪微博SDK分享)