老套路咱们先看效果图:
可以先看下官方文档介绍:微信官方文档APP打开小程序链接
我这边打开了,上面奔溃是因为模拟器不兼容的原因:
主要讲解下打开小程序核心代码:
// 填应用AppId String appId = "移动APP的APPID"; IWXAPI api = WXAPIFactory.createWXAPI(this, appId); WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req(); // 填小程序原始id req.userName = "小程序的id"; //拉起小程序页面的可带参路径,不填默认拉起小程序首页 // req.path = "拉起小程序页面的可带参路径"; // 可选打开 开发版,体验版和正式版 req.miniprogramType = WXLaunchMiniProgram.Req.MINIPROGRAM_TYPE_PREVIEW; api.sendReq(req);
讯享网

下面是小程序回调的方法
讯享网 @Override public void onResp(BaseResp resp) { if (resp.getType() == ConstantsAPI.COMMAND_LAUNCH_WX_MINIPROGRAM) { WXLaunchMiniProgram.Resp launchMiniProResp = (WXLaunchMiniProgram.Resp) resp; //对应小程序组件 <button open-type="launchApp"> 中的 app-parameter 属性 String extraData = launchMiniProResp.extMsg; } }
咱们来说下唤起小程序的步骤:
第一步:先在微信开放平台创建应用:打开微信开放平台

创建应用后再应用详情里面配置android端的签名和包名信息(包名一定要是打开小程序的APP所在的包名)
获取APP签名信息可查看我上一篇文章:APP签名获取


第二步:绑定要唤起的小程序


第三步:拿小程序的原始id和上面创建应用的AppId

然后在你要唤起小程序的APP里面添加唤起微信小程序的包:
implementation 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:5.3.1'
然后在唤起APP的方法里面加入唤起微信小程序以及传参数的代码:如下
参考的微信官方论坛:APP打开小程序传递参数的方法
讯享网 String appId = "移动APPAPPID"; IWXAPI api = WXAPIFactory.createWXAPI(this, appId); WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req(); // 填小程序原始id req.userName = "小程序id"; // 拉起小程序页面的可带参路径,不填默认拉起小程序首页 //req.path = "拉起小程序页面的可带参路径"; // 问号后面的memberId=1&mobile=就是参数 req.path = "pages/productSort/productSort?memberId=1&mobile="; // 可选打开 开发版,体验版和正式版 req.miniprogramType = WXLaunchMiniProgram.Req.MINIPROGRAM_TYPE_PREVIEW; api.sendReq(req);
然后看下小程序的回调方法(前提是小程序写了回调方法给APP)
@Override public void onResp(BaseResp resp) { if (resp.getType() == ConstantsAPI.COMMAND_LAUNCH_WX_MINIPROGRAM) { WXLaunchMiniProgram.Resp launchMiniProResp = (WXLaunchMiniProgram.Resp) resp; //对应小程序组件 <button open-type="launchApp"> 中的 app-parameter 属性 String extraData = launchMiniProResp.extMsg; } }
说下坑:如下图

原因:因为用的是体验版,所登的微信账号无体验权限。 解决方案:管理员给该账户体验权限,用该小程序有体验权限的账号测试
跳转小程序失败:如下图

我这边也遇到了,我出现的原因是因为我的APPID填写错了,应该填写创建移动应用的APPid而不是小程序的APPID
源码下载:GitHub地址
再次感谢网友提供经验:网友经验1 网友经验2

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/58830.html