前段时间做了一个app调取应用程序进行人脸识别,识别完成之后返回这个人的信息给app,这里记录一下app怎么调起微信小程序。
首先引入微信三方包:
com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+
//拉起小程序
IWXAPI api = WXAPIFactory.createWXAPI(WebViewWnd.this, Constant.appId);
WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
req.userName = Constant.wx_orgin_id; // 填小程序原始id
req.path = Constant.path_login; //需要跳转到小程序的地址
req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE;//
可选打开 开发版,体验版和正式版
api.sendReq(req);
需要注意的是首先需要在微信开发平台开通小程序功能,然后添加小程序,添加成功之后太能调用成功。主要需要需要前期准备。
调用成功之后,回调这里就很简单了,和微信的支付回调是一样的操作,不同的是需要判断下类型
@Override
public void onResp(BaseResp resp) {
LogUtil.d("===5",""+resp.getType());
if (resp.getType() == ConstantsAPI.COMMAND_LAUNCH_WX_MINIPROGRAM) {
WXLaunchMiniProgram.Resp launchMiniProResp = (WXLaunchMiniProgram.Resp) resp;
String extraData = launchMiniProResp.extMsg; // 对应JsApi navigateBackApplication中的extraData字段数据
EventBus.getDefault().post(new FinishEvent(extraData));
}
finish();
}
这里就只写获取回调数据的方法了,因为这里是微信的回调页面,需要把获取的数据传到调起微信小程序的界面处理一下数据,所以我使用了EventBus组件处理的。
//小程序返回数据成功,调用更新登陆
@Subscribe(threadMode = ThreadMode.MAIN)
public void receiveEventBus(FinishEvent messageEvent) {
//处理小程序返回的数据
}
简单的记录一下。