问题:App拉起小程序无法正常返回
问题描述:App端通过官方代码打开小程序,
String appId = ""; // 填应用AppId
IWXAPI api = WXAPIFactory.createWXAPI(UserLoginByPwdActivity.this, appId);
WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
req.userName = ""; // 填小程序原始id
req.path = "pages/authenticate/login/login-face/login-face?from=app&appName=佛山通&skipbind=1&responseType=code&multiAuthWay =1"; ////拉起小程序页面的可带参路径,不填默认拉起小程序首页,对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。
req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE;// 可选打开 开发版,体验版和正式版
api.sendReq(req);
打开小程序操作完之后,返回App发现没有反应,一直处于加载中,WXEntryActivity 回调程序也没有走。
最后发现是之前微信的相关配置有问题
<activity
android:name="xxxx.wxapi.WXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:launchMode="singleTop"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity-alias
android:name="${applicationId}.wxapi.WXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:launchMode="singleTop"
android:targetActivity="xxxxx.wxapi.WXEntryActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
问题解决:
修改清单文件中的android:launchMode="singleTop"
为 android:launchMode="singleTask"
就可以跳回App了
<activity
android:name="xxxx.wxapi.WXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:launchMode="singleTask"
tools:replace="android:launchMode"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity-alias
android:name="${applicationId}.wxapi.WXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:launchMode="singleTask"
android:screenOrientation="portrait"
tools:replace="android:launchMode"
android:targetActivity="xxxx.wxapi.WXEntryActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />