前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android App跳转微信小程序教程

Android App跳转微信小程序教程

原创
作者头像
PHP开发工程师
发布2022-05-06 10:55:55
4.5K0
发布2022-05-06 10:55:55
举报
文章被收录于专栏:thinkphp+vue

最近,有一个App跳转小程序的需求,参考微信的官方文档,接入还是比较简单的,不过中途遇到了一个坑,所以记录一下。

首先,需要登录微信开放平台 微信开放平台,创建一个移动应用,然后系统会返回一个appid。

需要说明的是,不管是跳转微信小程序还是微信登录、分享,都需要先在微信开放平台注册appId。然后,就可以参考 Android APP拉取小程序的例子,在WebView中调用下面的代码(可以是直接调用,也可以是协议拦截)。

代码语言:javascript
复制
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方法。

代码语言:javascript
复制
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 属性
    }
}
复制代码

当然,为了代码逻辑的健壮性,还需要在打开微信小程序之前,判断是否安装了微信客户端。

代码语言:javascript
复制
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;
    }

最后

如果你觉得这篇文章对你有点用的话。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 最后
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档