Android调起跳转微信小程序详解及注意事项
Posted 宾有为
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android调起跳转微信小程序详解及注意事项相关的知识,希望对你有一定的参考价值。
前段时间因功能要求,需要实现app打开微信调用小程序的功能,公司的产品以H5为主,经理希望能直接在H5里面调用方法,直接打开微信调用小程序,经理的想法还是好的,偏偏官方给的答案是不能!H5(截至2019年-11-12日,暂不清楚何时可以)不能打开微信调起微信小程序!!!
唉,说到底苦逼的还不是我。官方不支持,那也只有在原生代码上写一个方法暴露出来给H5调用了,无疑又加大了我一点点点点的工作量
说了这么多,那应该如何使用原生代码打开微信进行调用呢?
第一步:导入微信官方集成的SDK,这两个我当时用的是下面那个,两个都有要其中一个就可以了,不行试试另一个,接着Syc Now
dependencies
// implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'//打开微信小程序需要
implementation 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:5.3.1'
第二步:在你想打开微信调起微信小程序的地方加入下列代码
String appId = ""; // 填应用AppId
IWXAPI api = WXAPIFactory.createWXAPI(MainActivity.this, appId);
WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
req.userName = ""; // 填小程序原始id
req.path = "pages/index/index"; //拉起小程序页面的可带参路径,不填默认拉起小程序首页
req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE;// 可选打开 开发版,体验版和正式版
api.sendReq(req);
到这里,顺利的话,打开微信调用微信小程序的功能便实现了,不顺利的话。。。
不顺利的话,APP打开微信后会遇上弹“由于应用包名签名信息校验不通过,无法分享到微信” 或 “bad_param”
弹 由于应用包名签名信息校验不通过,无法分享到微信 的原因 :
这个错误已经很明确的给出答案了,就是你当前Android的包名与微信那边提交的包名不一样(注意:跳转微信小程序需要在微信开发开放平台填写Android App的包名、签名信息,将其关联起来),在这里也需要核对Android App的包名、签名和小程序关联的是否一致。
还有,App打包前和打包后的sha1签名不一定一致,此处还需仔细检查
弹 bad_param的原因 :
appId 或 userName 值的参数不对或者不全,请对照文档自查
不信请点这里
等等,这篇文章还不能结尾,因为还有一个大坑!!!
相信各位一路看下来的时候,也留意不到,在下面框住的地方便隐藏这一个大坑
在App调起微信小程序功能里 appId 与 req.userName 参数是必须要填写的参数之一,这时,你不能被其它博客所误导,当然,我这里的代码也是在其它地方复制过来的,为的就是举个例子,很多人都只会复制粘贴人家的东西,却不加以修改,这就会给后来者留下误区,废话不说了,说重点:
appid是以wx开头的,但它并非要跳转到的小程序的appid,而是要调起微信小程序的appid,只因是wx开头,可能也就因此导致很多人被坑
由于我在公司负责的模块是Android方面,关于如何在小程序关联app这种东西我就不太清楚,这玩意不归我管,也不能什么都要去问经理,因此,文章所述如有误的地方,还请各位指点一二
与50位技术专家面对面 20年技术见证,附赠技术全景图以上是关于Android调起跳转微信小程序详解及注意事项的主要内容,如果未能解决你的问题,请参考以下文章