微信新版 分享 登录 分享小程序 遇到 的问题

来源:互联网 发布:js面向对象编程 编辑:程序博客网 时间:2024/04/30 14:44

由于不支持的分享类型 无法分享到微信安卓


说到这个问题 网上基本上没有靠谱或者有解释的一个答案 
博主反复查看好多次发现
博主的问题是给的app原始id不正确
可能导致无法找到小程序 
那么消息就没法发送 就是判定为你的消息类型不正确了

分享小程序的代码 网上都是图片~~~
//分享小程序spublic void sendMiniApps() {    WXMiniProgramObject miniProgramObject=new WXMiniProgramObject();    miniProgramObject.webpageUrl="http://www.qq.com";    miniProgramObject.userName="gh_------------";//小程序的原始ID      //     小程序的path    miniProgramObject.path="pages/home/home";    WXMediaMessage msg=new WXMediaMessage(miniProgramObject);    msg.title="未来超市";//标题    msg.description="未来超市";//描述信息    Bitmap bmp=new BitmapFactory().decodeResource(getResources(),R.mipmap.app_icon);    Bitmap thumb=Bitmap.createScaledBitmap(bmp,90,90,true);//注意这里的缩略图大小    bmp.recycle();    msg.thumbData= Util.bmpToByteArray(thumb,true);    SendMessageToWX.Req req=new SendMessageToWX.Req();    req.transaction=buildTransaction("webpage");    req.message=msg;    req.scene=SendMessageToWX.Req.WXSceneSession;//发送到聊天界面    MyShopApplication.getInstance() .api .sendReq(req);}
 第二个问题 是否分享 以及登录共用同一个回调的问题

遇到了在项目中同时集成微信的登录和分享功能,刚开始登录功能是没问题的 ,但是当弄分享的时候出了问题,当用户分享之后点击返回APP会返回到一个空白页面,只有当再次点击返回才会回到APP界面,断点之后发现是因为这两个功能都会调用微信WXEntryActivity的回调函数,当分享后再回调时,函数中的

SendAuth.Resp authResp = (Resp) resp;
String code = authResp.code;
此处会不继续往下执行,因为分享要用到的不是SendAuth.Req而是SendMessageToWX.Req 这会导致在这个回调函数中执行的时候获取的authResp.code不正确 从而回调函数不继续执行
所以需要在回调函数中加判断来区分是登录指令 还是分享指令
public void onResp(BaseResp resp){
if(resp.getType()==ConstantsAPI.COMMAND_SENDMESSAGE_TO_WX){//分享
此处执行分享
}
else if(resp.getType()==ConstantsAPI.COMMAND_SENDAUTH){//登录
此处执行登录
}