Android APP分享微信小程序

需求:

Android APP端 将公司的微信小程序 分享至微信好友 

分析:

微信开放平台SDK支持小程序类型分享,详见官方文档:https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Share_and_Favorites/Android.html

a) 要求发起分享的App与小程序属于同一微信开放平台帐号;
b) 支持分享小程序类型消息至好友会话,不支持“分享至朋友圈” “收藏”;
c) 微信客户端版本要求:6.5.6及以上微信客户端版本,若客户端版本低于6.5.6,小程序类型分享将自动转成网页类型分享。开发者必须填写网页链接字段,确保低版本客户端能正常打开网页链接;
d) 支持分享大图卡片样式,自定义图片建议长宽比是 5:4。6.5.9及以上版本微信客户端小程序类型分享使用大图卡片样式。
e)支持分享开发版/体验版小程序,为支持开发者调试,开发者工具包支持分享开发版/体验版小程序至微信,开发者可控制分享的小程序版本。

开发:

    IWXAPI msgApi = WXAPIFactory.createWXAPI(mContext, Constants.WX_APP_ID, true);
    // 将该app注册到微信
    msgApi.registerApp(Constants.WX_APP_ID);//微信appid
    
    WXMiniProgramObject miniProgramObj = new WXMiniProgramObject();
    miniProgramObj.webpageUrl = mTargetUrl; // 兼容低版本的网页链接
    miniProgramObj.miniprogramType = WXMiniProgramObject.MINIPTOGRAM_TYPE_RELEASE;// 正式版:0,测试版:1,体验版:2
    miniProgramObj.userName = "小程序原始id";     // 小程序原始id
    //        miniProgramObj.path = "/pages/home/home";        //小程序页面路径
    
    WXMediaMessage msg = new WXMediaMessage(miniProgramObj);
    msg.title =mTitle; // 小程序消息title
    msg.description = mSummary;   // 小程序消息desc
    Bitmap bitmap = BitmapFactory.decodeResource(mContext.getResources(),R.mipmap.app_logo);
    Bitmap sendBitmap = Bitmap.createScaledBitmap(bitmap,200,200,true);
    bitmap.recycle();
    msg.thumbData = HzqUtils.bmpToByteArray(sendBitmap);
    SendMessageToWX.Req req = new SendMessageToWX.Req();
    //                    req.transaction = buildTransaction("webpage");
    req.message = msg;
    req.scene = SendMessageToWX.Req.WXSceneSession;  // 目前支持会话

bmpToByteArray工具类:

public static byte[] bmpToByteArray (Bitmap bitmap) {

        // 要返回的字符串
        byte[] reslut = null;

        ByteArrayOutputStream baos = null;

        try {
            if (bitmap != null) {
                baos = new ByteArrayOutputStream();
                /**
                 * 压缩只对保存有效果bitmap还是原来的大小
                 */
                bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);

                baos.flush();
                baos.close();
                // 转换为字节数组
              reslut= baos.toByteArray();

            } else {
                return null;
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (baos != null) {
                    baos.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
        return reslut;

    }

完毕!

 

 

 

你可能感兴趣的:(安卓,小程序)