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调起跳转微信小程序详解及注意事项的主要内容,如果未能解决你的问题,请参考以下文章

Android App跳转微信小程序

如何玩转微信小程序

H5在微信小程序及公众号中的支付

H5跳转微信小程序

抖音跳转微信小程序方法有哪些

微信小程序要调数据 微信小程序 for 循环详解