微信分享遇到的坑

微信分享操作步骤

  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;
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值