我尽量不打错别字,用词准确,不造成阅读障碍。
突然要做小程序跳转回App,记得这个功能出来有一段时间了,本以为看看文档就好了,结果遇到了小坑,因为之前一直是看文档就完成了需求,但是文档是这样写的:
我初步理解就是找到ShowMessageFromWX.req并将其处理解析,拿到标识控制跳转。当我之前没见过这个req,所以我下载了这个Android SDKSample看看,结果,感觉自己被坑了! 因为我直接全局搜索的ShowMessageFromWX.req,一路反跟踪,结果只有这一个地方出现了这个:
加上注释,我理解为小程序跳转App就属于“微信发送请求到第三方应用”,就是这个!然后就在项目中的onReq方法里也这么写,并且留个心眼,打印了log,结果发现,没有log打印出来,说明根本没有跳入这个方法!嗯??
根据小程序文档,只有两种场景可以实现小程序跳转回App;
1.App直接打开小程序。 2.App分享小程序卡片后,通过卡片打开小程序。
然后翻看文档发现自己没看错啊,最后想着百度吧,这个出来这么久了,肯定有人写了,结果发现呵呵了,很多人就是把官方文档复制一下就放在博客里,要不就是只有小程序那边的写法,到App这边说明就比官方还没用,这种文章还被转载了好多次,呵呵!
后来看到文档说明最后一句,“参考onResp"方法,于是就在onResp方法里面打印了一下,发现跳进来了!所以最后实际应该是在onResp转换baseResp来获取信息,真正正确代码如下:
@Override
public void onResp(BaseResp baseResp) {
String msg = ((WXLaunchMiniProgram.Resp) baseResp).extMsg;
//自己处理
finish(); //最后可以finish掉这个Activity,这样用户在按导航栏返回的时候体验会好很多
}
结果总结下来:回调是在onResp里面,而且转换也不是ShowMessageFromWX.req而是WXLaunchMiniProgram.Resp
我觉得自己可能错了,可能是错误的方法取得了想要的结果!要不然官方文档里面的ShowMessageFromWX.req不就没用了吗?所以希望知道我错误的大佬们可以指出错误,我及时更改,也希望给予需要帮助的人一些帮助,毕竟需求还是达到了!求轻喷!