• 如何将图片和文字同时分享到微信


    微信开放平台上的例子只有单独分享一张图片或者是单独分享一段文字。最近要做这个功能,就搜索了一下是否有这方面的文章。可能博主搜索能力有限,没找到。最后只好反编译了一个拥有这个功能的应用,得到了这部分代码,拿出来分享一下:

    public void sendReq(Context context, String text, Bitmap bmp) {
            String url = "http://www.ABC.net";//收到分享的好友点击信息会跳转到这个地址去
            WXWebpageObject localWXWebpageObject = new WXWebpageObject();
            localWXWebpageObject.webpageUrl = url;
            WXMediaMessage localWXMediaMessage = new WXMediaMessage(
                    localWXWebpageObject);
            localWXMediaMessage.title = "我的应用";//不能太长,否则微信会提示出错。不过博主没验证过具体能输入多长。
            localWXMediaMessage.description = text;
            localWXMediaMessage.thumbData = getBitmapBytes(bmp, false);
            SendMessageToWX.Req localReq = new SendMessageToWX.Req();
            localReq.transaction = System.currentTimeMillis() + "";
            localReq.message = localWXMediaMessage;
            IWXAPI api = WXAPIFactory.createWXAPI(context, APP_ID, true);
            api.sendReq(localReq);
        }
    // 需要对图片进行处理,否则微信会在log中输出thumbData检查错误
        private static byte[] getBitmapBytes(Bitmap bitmap, boolean paramBoolean) {
            Bitmap localBitmap = Bitmap.createBitmap(80, 80, Bitmap.Config.RGB_565);
            Canvas localCanvas = new Canvas(localBitmap);
            int i;
            int j;
            if (bitmap.getHeight() > bitmap.getWidth()) {
                i = bitmap.getWidth();
                j = bitmap.getWidth();
            } else {
                i = bitmap.getHeight();
                j = bitmap.getHeight();
            }
            while (true) {
                localCanvas.drawBitmap(bitmap, new Rect(0, 0, i, j), new Rect(0, 0,
                        80, 80), null);
                if (paramBoolean)
                    bitmap.recycle();
                ByteArrayOutputStream localByteArrayOutputStream = new ByteArrayOutputStream();
                localBitmap.compress(Bitmap.CompressFormat.JPEG, 100,
                        localByteArrayOutputStream);
                localBitmap.recycle();
                byte[] arrayOfByte = localByteArrayOutputStream.toByteArray();
                try {
                    localByteArrayOutputStream.close();
                    return arrayOfByte;
                } catch (Exception e) {
                    F.out(e);
                }
                i = bitmap.getHeight();
                j = bitmap.getHeight();
            }
        }

    其实就是分享一张网页,同时提供该页面的缩略图、描述等信息啦。刚好可以拿来做同时分享图片和文字内容。其它部分代码就跟微信开放平台上提供的例子一样了。希望对需要的朋友有点帮助。

  • 相关阅读:
    MySQL Generic Binaries包和RPM包的区别?
    实体零售如何构建数据管理体系及未来方向
    python3 数据分析
    power designer 资料库表查询
    PowerDesigner 连接资料库
    电商数据分析的基本指标体系
    初中数学动点最值问题19大模型+例题详解
    初中数学全年级26个专题知识点精编汇总
    Python数据分析学习路径拆解及资源推荐
    十种常用的数据分析方法
  • 原文地址:https://www.cnblogs.com/airshow/p/2758016.html
Copyright © 2020-2023  润新知