微信分享遇到的坑

来源:互联网 发布:linux配置ip地址命令 编辑:程序博客网 时间:2024/05/18 03:31

微信分享操作步骤

  1. 先到微信开放平台上注册应用:需要用到包名应用签名
  2. 开始正常的开发;

潜在的坑:

  1. 微信分享使用的应用签名MD5值,而且是不带冒号的小写MD5值;

    如何获取MD5值?

    1. 将apk修改后缀为 .rar文件后解压;
    2. 进入解压后的META-INF目录,该目录下会存在文件CERT.RSA
    3. 在该目录下打开cmd,输入命令 :keytool -printcert -file CERT.RSA
  2. 进行图文分享时,对分享的图片有大小限制(32k),如果图片超过了32k,在分享时什么现象都没有(这里说的图片大小是指最后赋值给请求时的图片大小)。

    /** * 链接分享 */public static void sendWebSite(IWXAPI api, Bitmap bmp, boolean isTimeline, String url, String title, String description){   if(api != null){       WXWebpageObject webpage = new WXWebpageObject();       webpage.webpageUrl = url;       WXMediaMessage msg = new WXMediaMessage(webpage);       msg.title = title;       msg.description = description;       Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, THUMB_SIZE, THUMB_SIZE, true);       // 注意:就是指这里的msg.thumbData大小不能超过32k       msg.thumbData = bmpToByteArray(thumbBmp, true);       SendMessageToWX.Req req = new SendMessageToWX.Req();       req.transaction = buildTransaction("webpage");       req.message = msg;       req.scene = isTimeline? SendMessageToWX.Req.WXSceneSession : SendMessageToWX.Req.WXSceneTimeline;       api.sendReq(req);   }}public static byte[] bmpToByteArray(final Bitmap bmp, final boolean needRecycle) {    ByteArrayOutputStream output = new ByteArrayOutputStream();    bmp.compress(CompressFormat.PNG, 100, output);    if (needRecycle) {        bmp.recycle();    }    byte[] result = output.toByteArray();    try {        output.close();    } catch (Exception e) {        e.printStackTrace();    }    return result;}