最近,有一个app跳转小程序的需求,参考微信的官方文档,接入还是比较简单的,不过中途遇到了一个坑,所以记录一下。
上述就是android开发分享Android App跳转微信小程序踩坑实战的全部内容,如果对大家有所用处且需要了解更多关于Android学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
首先,需要登录微信开放平台 微信开放平台,创建一个移动应用,然后系统会返回一个appid。
需要说明的是,不管是跳转微信小程序还是微信登录、分享,都需要先在微信开放平台注册appid。然后,就可以参考 android app拉取小程序的例子,在webview中调用下面的代码(可以是直接调用,也可以是协议拦截)。
string appid = "wxd930ea5d5a258f4f"; // 填移动应用(app)的 appid,非小程序的 appid iwxapi api = wxapifactory.createwxapi(context, appid); wxlaunchminiprogram.req req = new wxlaunchminiprogram.req(); req.username = "gh_d43f693ca31f"; // 填小程序原始id req.path = path; ////拉起小程序页面的可带参路径,不填默认拉起小程序首页,对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。 req.miniprogramtype = wxlaunchminiprogram.req.miniptogram_type_release;// 可选打开 开发版,体验版和正式版 api.sendreq(req);
需要重点提醒的是,上面appid是前面我们注册的移动应用的appid,而不是小程序的appid。在刚开始接入的时候,就遇到了一个坑,“bad param”的错误。如果遇到“bad param”的错误,那多半是appid的问题。
username则是小程序原始id,可以打开小程序,然后查看更多资料进行查看,比如:
如果需要回掉结果,还需要在wxentryactivity中重写onresp方法。
public void onresp(baseresp resp) { if (resp.gettype() == constantsapi.command_launch_wx_miniprogram) { wxlaunchminiprogram.resp launchminiproresp = (wxlaunchminiprogram.resp) resp; string extradata =launchminiproresp.extmsg; //对应小程序组件 <button open-type="launchapp"> 中的 app-parameter 属性 } }
当然,为了代码逻辑的健壮性,还需要在打开微信小程序之前,判断是否安装了微信客户端。
public static boolean iswxappinstalled(context context) { iwxapi wxapi = wxapifactory.createwxapi(context, null); wxapi.registerapp(wchatconstants.app_id); boolean biswxappinstalled = false; biswxappinstalled = wxapi.iswxappinstalled(); if(!biswxappinstalled){ toast.maketext(context,"请先安装微信",toast.length_short).show(); } return biswxappinstalled; }
总结
到此这篇关于android app跳转微信小程序踩坑的文章就介绍到这了,更多相关android app跳转小程序内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/addevelopment/1091018.html