微信朋友圈如何同时分享(图片+文字)

本文介绍了一种在微信朋友圈SDK中实现图文分享的方法。通过创建WXWebpageObject对象并设置其webpageUrl属性来实现图文分享,同时设置了分享消息的标题和描述,并将图片缩放后转换为byte数组作为缩略图数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

微信朋友圈SDK 分享图片的代码,但只能分享图片,不能分享文字,如何才能图片和文字同时分享?

public class MainActivity extends Activity {
 
    private static final int THUMB_SIZE = 150;
 
    private static final String SDCARD_ROOT = Environment.getExternalStorageDirectory().getAbsolutePath();
 
    private static final String APP_ID = "wx1b1ed04625409aa7";
    private static final String tag = "MainActivity";
    IWXAPI api = null;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    api = WXAPIFactory.createWXAPI(this, APP_ID, true);
    api.registerApp(APP_ID);
    sendImg();
    }
     
    private void sendImg() {
    String imagePath = SDCARD_ROOT + "/test.png";
    WXImageObject imgObj = new WXImageObject();
    imgObj.setImagePath(imagePath);
     
    WXMediaMessage msg = new WXMediaMessage();
    msg.mediaObject = imgObj;
    msg.description="图片描述";
 
    Bitmap bmp = BitmapFactory.decodeFile(imagePath);
    Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, THUMB_SIZE, THUMB_SIZE, true);
    bmp.recycle();
    msg.thumbData = Util.bmpToByteArray(thumbBmp, true);
    msg.title="abc-title";
    SendMessageToWX.Req req = new SendMessageToWX.Req();
    req.transaction = "img"+String.valueOf(System.currentTimeMillis());
    req.message = msg;   
    req.scene = SendMessageToWX.Req.WXSceneTimeline;
    api.sendReq(req);
    }
}

分享图片和文字代码:

WXWebpageObject webpage = new WXWebpageObject();
        //为什么需要填写url? 当前Demo使用的微信SDK不支持图文分享,使用图文分享必须转成URL分享,所以需要填写一个URL
        webpage.webpageUrl = fenXiangUrl;
        
        WXMediaMessage msg = new WXMediaMessage(webpage);
        msg.title = content;
        msg.description = content;

操作图片   msg.thumbData;


SendMessageToWX.Req req = new SendMessageToWX.Req();
        req.transaction = buildTransaction("webpage");
        req.message = msg;
        
        req.scene = toCircle ? SendMessageToWX.Req.WXSceneTimeline
                            : SendMessageToWX.Req.WXSceneSession;
        boolean sendReq = api.sendReq(req);
应该很详细了吧

官方:

findViewById(R.id.send_webpage).setOnClickListener(new View.OnClickListener() {
 
            @Override
            public void onClick(View v) {               
                MMAlert.showAlert(SendToWXActivity.this, getString(R.string.send_webpage),
                        SendToWXActivity.this.getResources().getStringArray(R.array.send_webpage_item),
                        null, new MMAlert.OnAlertSelectId(){
 
                    @Override
                    public void onClick(int whichButton) {                       
                        switch(whichButton){
                        case MMAlertSelect1:
                            WXWebpageObject webpage = new WXWebpageObject();
                            webpage.webpageUrl = "http://www.baidu.com";
                            WXMediaMessage msg = new WXMediaMessage(webpage);
                            msg.title = "WebPage Title WebPage Title WebPage Title WebPage Title WebPage Title WebPage Title WebPage Title WebPage Title WebPage Title Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long";
                            msg.description = "WebPage Description WebPage Description WebPage Description WebPage Description WebPage Description WebPage Description WebPage Description WebPage Description WebPage Description Very Long Very Long Very Long Very Long Very Long Very Long Very Long";
                            Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.send_music_thumb);
                            msg.thumbData = Util.bmpToByteArray(thumb, true);
                             
                            SendMessageToWX.Req req = new SendMessageToWX.Req();
                            req.transaction = buildTransaction("webpage");
                            req.message = msg;
                            req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
                            api.sendReq(req);
                             
                            finish();
                            break;
                        default:
                            break;
                        }
                    }
                });
            }
        });

 

转载于:https://www.cnblogs.com/zhujiabin/p/4755167.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值