zoukankan      html  css  js  c++  java
  • 如何将图片和文字同时分享到微信

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

    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();
            }
        }

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

  • 相关阅读:
    struts 数据验证指定方法(使用xml文件)
    struts2.0简单页面 (不带拦截器和带拦截器案例)
    tomcat启动流程 和 struts 详解
    代理类Proxy------ WeakHashMap----ReferenceQueue---- Reference
    java 文件上传 struts2.0实现
    java struts xml文件设置----自定义日期转换器(局部,及全局类型转换器类)
    java request,response解析及中文编码 , jsp注释 xml中文编码,getsession()使用方法
    java jsp自定义标签
    Java 通讯录contact
    [Machine Learning for Trading] {ud501} Lesson 3: 01-02 Working with multiple stocks
  • 原文地址:https://www.cnblogs.com/airshow/p/2758016.html
Copyright © 2011-2022 走看看