Android开发之APP唤醒小程序,打开小程序,调起小程序以及传参数的实现方法(附加源码)

老套路咱们先看效果图:

Android开发之APP唤醒小程序,打开小程序,调起小程序以及传参数的实现方法(附加源码)_第1张图片

 

可以先看下官方文档介绍:微信官方文档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);

Android开发之APP唤醒小程序,打开小程序,调起小程序以及传参数的实现方法(附加源码)_第2张图片

下面是小程序回调的方法

 @Override
    public void onResp(BaseResp resp) {
        if (resp.getType() == ConstantsAPI.COMMAND_LAUNCH_WX_MINIPROGRAM) {
            WXLaunchMiniProgram.Resp launchMiniProResp = (WXLaunchMiniProgram.Resp) resp;
            //对应小程序组件 

 

 

咱们来说下唤起小程序的步骤:

第一步:先在微信开放平台创建应用:打开微信开放平台

 

Android开发之APP唤醒小程序,打开小程序,调起小程序以及传参数的实现方法(附加源码)_第3张图片

 

创建应用后再应用详情里面配置android端的签名和包名信息(包名一定要是打开小程序的APP所在的包名)

获取APP签名信息可查看我上一篇文章:APP签名获取

Android开发之APP唤醒小程序,打开小程序,调起小程序以及传参数的实现方法(附加源码)_第4张图片

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

Android开发之APP唤醒小程序,打开小程序,调起小程序以及传参数的实现方法(附加源码)_第5张图片

Android开发之APP唤醒小程序,打开小程序,调起小程序以及传参数的实现方法(附加源码)_第6张图片

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

Android开发之APP唤醒小程序,打开小程序,调起小程序以及传参数的实现方法(附加源码)_第7张图片

然后在你要唤起小程序的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=13711111111就是参数
        req.path = "pages/productSort/productSort?memberId=1&mobile=13711111111"; 
        // 可选打开 开发版,体验版和正式版
        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;
            //对应小程序组件 

说下坑:如下图

Android开发之APP唤醒小程序,打开小程序,调起小程序以及传参数的实现方法(附加源码)_第8张图片

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

 

跳转小程序失败:如下图

Android开发之APP唤醒小程序,打开小程序,调起小程序以及传参数的实现方法(附加源码)_第9张图片

我这边也遇到了,我出现的原因是因为我的APPID填写错了,应该填写创建移动应用的APPid而不是小程序的APPID

源码下载:GitHub地址

再次感谢网友提供经验:网友经验1 网友经验2

你可能感兴趣的:(Android总结)