Android 微信分享(文字、图片、视频、音频、网页)

写微信分享之前,现在微信开放平台创建一个应用,获得一个appid,导入相关jar包。

public class WXShareUtil {

    private static IWXAPI api;

    /**
     * 微信文字分享
     * @param text 分享内容
     * @param context
     */
    public static void WXTextShare(String text, Context context){
        //初始化一个WXTextObject对象,填写分享的文本内容
        WXTextObject textObject = new WXTextObject();
        textObject.text = text;

        //用WXTextObject对象初始化一个WXMediaMessage对象
        WXMediaMessage msg = new WXMediaMessage();
        msg.mediaObject = textObject;
        msg.description = text;

        //构造一个Req
        SendMessageToWX.Req req = new SendMessageToWX.Req();
        req.message = msg;
        req.scene = SendMessageToWX.Req.WXSceneSession;
        //分享到朋友圈:req.scene = SendMessageToWX.Req.WXSceneTimeline;
        //分享到好友会话:req.scene = SendMessageToWX.Req.WXSceneSession;
        //添加到微信收藏:req.scene = SendMessageToWX.Req.WXSceneFavorite;

        //调用api接口发送数据到微信
        if (api==null){
            api = WXAPIFactory.createWXAPI(context, Constant.WXAPPID);
        }
        api.sendReq(req);
    }

    /**
     * 微信分享图片
     * @param resId 图片资源id
     * @param context
     */
    public static void WXBitmapShare(int resId, Context context){
        Bitmap bmp = BitmapFactory.decodeResource(context.getResources(),resId);

        //初始化一个WXImageObject对象和WXMediaMessage对象
        WXImageObject imgObj = new WXImageObject(bmp);
        WXMediaMessage msg = new WXMediaMessage();
        msg.mediaObject = imgObj;

        //设置缩略图
        Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp,100,100,true);
        bmp.recycle();
        msg.thumbData = ConvertUtil.ConvertBitmapToBytes(thumbBmp,true);

        //构造一个Req
        SendMessageToWX.Req req = new SendMessageToWX.Req();
        req.transaction = buildTransaction("img");//transaction字段用于唯一标识一个请求
        req.message = msg;
        req.scene = SendMessageToWX.Req.WXSceneSession;
        //分享到朋友圈:req.scene = SendMessageToWX.Req.WXSceneTimeline;
        //分享到好友会话:req.scene = SendMessageToWX.Req.WXSceneSession;
        //添加到微信收藏:req.scene = SendMessageToWX.Req.WXSceneFavorite;

        //调用api接口发送数据到微信
        if (api==null){
            api = WXAPIFactory.createWXAPI(context, Constant.WXAPPID);
        }
        api.sendReq(req);
    }

    /**
     * 微信分享图片
     * @param bitmap 图片
     * @param context
     */
    public static void WXBitmapShare(Bitmap bitmap, Context context){
        //初始化一个WXImageObject对象和WXMediaMessage对象
        WXImageObject imgObj = new WXImageObject(bitmap);
        WXMediaMessage msg = new WXMediaMessage();
        msg.mediaObject = imgObj;

        //设置缩略图
        Bitmap thumbBmp = Bitmap.createScaledBitmap(bitmap,100,100,true);
        bitmap.recycle();
        msg.thumbData = ConvertUtil.ConvertBitmapToBytes(thumbBmp,true);

        //构造一个Req
        SendMessageToWX.Req req = new SendMessageToWX.Req();
        req.transaction = buildTransaction("img");//transaction字段用于唯一标识一个请求
        req.message = msg;
        req.scene = SendMessageToWX.Req.WXSceneSession;
        //分享到朋友圈:req.scene = SendMessageToWX.Req.WXSceneTimeline;
        //分享到好友会话:req.scene = SendMessageToWX.Req.WXSceneSession;
        //添加到微信收藏:req.scene = SendMessageToWX.Req.WXSceneFavorite;

        //调用api接口发送数据到微信
        if (api==null){
            api = WXAPIFactory.createWXAPI(context, Constant.WXAPPID);
        }
        api.sendReq(req);
    }

    private static String buildTransaction(String img) {
        return System.currentTimeMillis()+img;
    }

    /**
     * 微信分享音乐
     * @param musicUrl
     * @param context
     */
    public static void WXMusicShare(String musicUrl, Context context){
        //初始化一个WXMusicObject对象,填写url
         WXMusicObject music = new WXMusicObject();
        music.musicUrl = musicUrl;
        //用WXMusicObject初始化一个WXMediaMessage对象,填写标题、描述
        WXMediaMessage msg = new WXMediaMessage();
        msg.mediaObject = music;
        msg.title = "音乐标题";
        msg.description = "音乐描述";
        //设置缩略图
        Bitmap thumbBmp = BitmapFactory.decodeResource(context.getResources(), R.drawable.login_icon);
        msg.thumbData = ConvertUtil.ConvertBitmapToBytes(thumbBmp,true);

        //构造一个Req
        SendMessageToWX.Req req = new SendMessageToWX.Req();
        req.transaction = buildTransaction("music");//transaction字段用于唯一标识一个请求
        req.message = msg;
        req.scene = SendMessageToWX.Req.WXSceneSession;
        //分享到朋友圈:req.scene = SendMessageToWX.Req.WXSceneTimeline;
        //分享到好友会话:req.scene = SendMessageToWX.Req.WXSceneSession;
        //添加到微信收藏:req.scene = SendMessageToWX.Req.WXSceneFavorite;

        //调用api接口发送数据到微信
        if (api==null){
            api = WXAPIFactory.createWXAPI(context, Constant.WXAPPID);
        }
        api.sendReq(req);
    }

    /**
     * 微信分享视频
     * @param videoUrl
     * @param context
     */
    public static void WXVideoShare(String videoUrl, Context context){
        //初始化一个WXVideoObject对象,填写url
        WXVideoObject video = new WXVideoObject();
        video.videoUrl = videoUrl;
        //用WXVideoObject初始化一个WXMediaMessage对象,填写标题、描述
        WXMediaMessage msg = new WXMediaMessage();
        msg.mediaObject = video;
        msg.title = "视频标题";
        msg.description = "视频描述";
        //设置缩略图
        Bitmap thumbBmp = BitmapFactory.decodeResource(context.getResources(), R.drawable.login_icon);
        msg.thumbData = ConvertUtil.ConvertBitmapToBytes(thumbBmp,true);

        //构造一个Req
        SendMessageToWX.Req req = new SendMessageToWX.Req();
        req.transaction = buildTransaction("video");//transaction字段用于唯一标识一个请求
        req.message = msg;
        req.scene = SendMessageToWX.Req.WXSceneSession;
        //分享到朋友圈:req.scene = SendMessageToWX.Req.WXSceneTimeline;
        //分享到好友会话:req.scene = SendMessageToWX.Req.WXSceneSession;
        //添加到微信收藏:req.scene = SendMessageToWX.Req.WXSceneFavorite;

        //调用api接口发送数据到微信
        if (api==null){
            api = WXAPIFactory.createWXAPI(context, Constant.WXAPPID);
        }
        api.sendReq(req);
    }

    public static void WXWebpageShare(String webpageUrl,String title,String description, Context context){
        Log.e("WXShare","webpage share WXWebpageObject");
        //初始化一个WXWebpageObject对象,填写url
        WXWebpageObject webpage = new WXWebpageObject();
        webpage.webpageUrl = webpageUrl;
        Log.e("WXShare","webpage share WXMediaMessage");
        //用WXWebpageObject初始化一个WXMediaMessage对象,填写标题、描述
        WXMediaMessage msg = new WXMediaMessage();
        msg.mediaObject = webpage;
        msg.title = title;
        msg.description = description;
        Log.e("WXShare","webpage share thumbBmp");
        //设置缩略图
        Bitmap thumbBmp = BitmapFactory.decodeResource(context.getResources(), R.drawable.login_icon);
        msg.thumbData = ConvertUtil.bitmap2Bytes(thumbBmp,32*1024);

        Log.e("WXShare","webpage share req");
        //构造一个Req
        SendMessageToWX.Req req = new SendMessageToWX.Req();
        req.transaction = buildTransaction("webpage");//transaction字段用于唯一标识一个请求
        req.message = msg;
        req.scene = SendMessageToWX.Req.WXSceneSession;
        //分享到朋友圈:req.scene = SendMessageToWX.Req.WXSceneTimeline;
        //分享到好友会话:req.scene = SendMessageToWX.Req.WXSceneSession;
        //添加到微信收藏:req.scene = SendMessageToWX.Req.WXSceneFavorite;

        //调用api接口发送数据到微信
        if (api==null){
            api = WXAPIFactory.createWXAPI(context, Constant.WXAPPID);
        }
        Log.e("WXShare","webpage share sendReq");
        api.sendReq(req);
    }
}

你可能感兴趣的:(Android 微信分享(文字、图片、视频、音频、网页))