微信分享返回软件WXEntryActivity无法关闭的问题以及分享中遇到的问题

今天犯了一个很傻比的事儿,说出来都丢人,但是我还是想记录一下,敲代码一定不要马虎!

今天接微信分享,分享成功后在返回软件的时候


停留在了WXEntryActivity空白界面,可是我代码里已经监听回调finish掉了啊

看了下报错信息为

/MicroMsg.SDK.WXApiImplV10: handleIntent fail, ex = com.tencent.mm.opensdk.modelmsg.SendMessageToWX$Resp cannot be cast to com.tencent.mm.opensdk.modelmsg.SendAuth$Resp

SendMessageToWX.Resp无法转换成SendAuth.Resp

尼玛,因为分享是项目最新的要求,所以我之前在onResp方法里面resp.errCode为 BaseResp.ErrCode.ERR_OK时是这么写的


第三方授权发送的为SendAuth.Req,而微信分享的为SendMessageToWX.Req,微信分享回调解析的时候直接转换为SendAuth.Req导致这个错误的发生,这种低级的错误也能犯,我真是无地自容了。

下图为改后的代码

至此问题得以解决,自我检讨一下,不能马虎,不能因为对它的逻辑写了无数遍而忽视。

此外有一种原因会出现微信分享调用不起来的情况,这个是针对签名什么都没有错误的,分享一下。如果你的微信签名啥的都设置的没有错,但是分享死活调用不起来,可能是因为分享图片太大导致无法调用起微信客户端。

我的解决方案是将原本的bitmap压缩至成100*100的bitmap

public WXShareshareUrlBitMap(int flag,Context context,String url,String title,String descroption,Bitmap mBitmap ){

    WXWebpageObject webpageObject =new WXWebpageObject();

    webpageObject.webpageUrl = url;

    WXMediaMessage msg =new WXMediaMessage(webpageObject);

    msg.title = title;

    msg.description = descroption;

    Bitmap scaledBitmap = Bitmap.createScaledBitmap(mBitmap , 100, 100, true);

    msg.setThumbImage(scaledBitmap);

    SendMessageToWX.Req req =new SendMessageToWX.Req();

    req.transaction = String.valueOf(System.currentTimeMillis());

    req.message = msg;

    req.scene = flag==0?SendMessageToWX.Req.WXSceneSession:SendMessageToWX.Req.WXSceneTimeline;

    api.sendReq(req);

    return this;

}

手头项目熬夜一周终于收尾,给自己鼓个掌,睡觉睡觉。

你可能感兴趣的:(微信分享返回软件WXEntryActivity无法关闭的问题以及分享中遇到的问题)