Android开发 APP集成QQ、微信和微博分享

最近做分享,小公司没啥要求,直接给弄了个系统原生的分享,然后呢经理说不好看,然后开始折腾友盟的,麻痹的,搞了好几天不是这里报错就是那里崩溃了,主要是分享成功之后返回APP崩溃的问题,好纠结,就直接集成了官方的SDK,跳出Umeng的坑了
QQ的比较好弄,不需要登录就可以分享:点击下载QQ的分享SDK相关资源并申请应用获取APP ID,我在新的Activity里面进行了分享的相关操作,每次需要分享的时候可以直接Intent到这个Activity就可以了
首先在配置类里面配置APP的ID
这里写图片描述
在配置清单里面配置所需要的Activity

 
        "com.tencent.tauth.AuthActivity"
            android:noHistory="true"
            android:launchMode="singleTask" >
            
                "android.intent.action.VIEW" />
                "android.intent.category.DEFAULT" />
                "android.intent.category.BROWSABLE" />
                "tencent1105839038" />
            
        

        "com.tencent.connect.common.AssistActivity"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:configChanges="orientation|keyboardHidden|screenSize"
            />
    

ShareActivity.java
这是一个背景半透明的Activity,用来显示分享菜单,分享到QQ的方法调用如下:

 /**
     * 官方参考文档地址:http://wiki.open.qq.com/index.php?title=Android_API%E8%B0%83%E7%94%A8%E8%AF%B4%E6%98%8E&=45038#1.13_.E5.88.86.E4.BA.AB.E6.B6.88.E6.81.AF.E5.88.B0QQ.EF.BC.88.E6.97.A0.E9.9C.80QQ.E7.99.BB.E5.BD.95.EF.BC.89
     * @param title 分享的内容title
     * @param openUrl 点击分享内容打开的地址
     * @param description 分享item的描述信息 分享的消息摘要,最长40个字。
     * @param imgUrl 分享item的图片地址
     * @param shareType 1分享到QQ空间 2分享到QQ好友
     */
    public void shareToQQ(String title,String description,String openUrl,String imgUrl,int shareType){
        final Bundle params = new Bundle();
        params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_DEFAULT);//消息类型 图文用默认的
        params.putString(QQShare.SHARE_TO_QQ_TITLE, title);//标题
        params.putString(QQShare.SHARE_TO_QQ_SUMMARY,description);//描述信息
        params.putString(QQShare.SHARE_TO_QQ_TARGET_URL,openUrl);//这条分享消息被好友点击后的跳转URL。
        params.putString(QQShare.SHARE_TO_QQ_IMAGE_URL,imgUrl);//分享图片的URL或者本地路径
        params.putString(QQShare.SHARE_TO_QQ_APP_NAME,getString(R.string.app_name));
        params.putInt(QQShare.SHARE_TO_QQ_EXT_INT,shareType);//分享额外选项,两种类型可选(默认是不隐藏分享到QZone按钮且不自动打开分享到QZone的对话框):QQShare.SHARE_TO_QQ_FLAG_QZONE_AUTO_OPEN,分享时自动打开分享到QZone的对话框。QQShare.SHARE_TO_QQ_FLAG_QZONE_ITEM_HIDE,分享时隐藏分享到QZone按钮
        mTencent.shareToQQ(ShareActivity.this, params, new BaseUIListener(ShareActivity.this));
    }

分享到微信的相关操作需要到微信后台注册审核通过之后才能分享,
分享到微信的方法:

     /**
     * @param title       分享的标题
     * @param openUrl     点击分享item打开的网页地址url
     * @param description 网页的描述
     * @param icon        分享item的图片
     * @param requestCode 0表示为分享到微信好友  1表示为分享到朋友圈 2表示微信收藏
     */
    public void sendToWeiXin(String title, String openUrl, String description, Bitmap icon, int requestCode) {
        //初始化一个WXWebpageObject对象,填写url
        WXWebpageObject webpage = new WXWebpageObject();
        webpage.webpageUrl = openUrl;
        //Y用WXWebpageObject对象初始化一个WXMediaMessage对象,填写标题、描述
        WXMediaMessage msg = new WXMediaMessage(webpage);
        msg.title = title;//网页标题
        msg.description = description;//网页描述
        msg.setThumbImage(icon);
        //构建一个Req
        SendMessageToWX.Req req = new SendMessageToWX.Req();
        req.transaction = "supplier";
        req.message = msg;
        req.scene = requestCode;
        api.sendReq(req);
    }
微博分享需要在后台创建申请app ,通过审核之后拿到app id,而且如果当前手机没有安装微博客户端的话不能发起分享,微博分享需要当前微博客户端支持..

效果图:
Android开发 APP集成QQ、微信和微博分享_第1张图片
下载weiboSDK:

    https://github.com/sinaweibosdk/weibo_android_sdk

把相关的架包和so文件都要复制过来,so为了将一个不能少
在ShareActivity的onCreate中初始化WeiboShareAPI对象,注册app

      /**sina微博*/
        mWeiboShareAPI=WeiboShareSDK.createWeiboAPI(this,Constants.SINA_APP_KEY);
        // 注册第三方应用到微博客户端中,注册成功后该应用将显示在微博的应用列表中。
        // 但该附件栏集成分享权限需要合作申请,详情请查看 Demo 提示
        // NOTE:请务必提前注册,即界面初始化的时候或是应用程序初始化时,进行注册
        mWeiboShareAPI.registerApp();

        // 当 Activity 被重新初始化时(该 Activity 处于后台时,可能会由于内存不足被杀掉了),
        // 需要调用 {@link IWeiboShareAPI#handleWeiboResponse} 来接收微博客户端返回的数据。
        // 执行成功,返回 true,并调用 {@link IWeiboHandler.Response#onResponse};
        // 失败返回 false,不调用上述回调
        if (savedInstanceState != null) {
            mWeiboShareAPI.handleWeiboResponse(getIntent(), this);
        }

分享图片到微博:

        WeiboMessage weiboMessage = new WeiboMessage();
        ImageObject imageObject = new ImageObject();
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
        imageObject.setImageObject(bitmap);
        weiboMessage.mediaObject = imageObject;

       //发送请求
        SendMessageToWeiboRequest request = new SendMessageToWeiboRequest();
        request.transaction = String.valueOf(System.currentTimeMillis());
        request.message = weiboMessage;
        mWeiboShareAPI.sendRequest(ShareActivity.this, request);

app效果如下:
Android开发 APP集成QQ、微信和微博分享_第2张图片

demo下载地址:

    http://download.csdn.net/detail/pkandroid/9697731

微信分享到好友、分享到朋友圈、分享到微信收藏、分享到QQ好友、分享到QQ空间、分享到新浪微博

    https://github.com/HYVincent/Login

你可能感兴趣的:(android,开发,综合)