mui、HBuilder、 HTML5+实现分享微信分享界面闪退的问题

时间:2024-04-05 20:17:43

实现微信分享的步骤有如下几步:

 

1. 在微信开放平台申请AppID、AppSecret;

 

2. 配置Hbuilder项目中的manifest.json文件,添加分享权限和配置分享SDK; 

 

3. 测试分享。

 

mui、HBuilder、 HTML5+实现分享微信分享界面闪退的问题

 

 

步骤是很简单,但如果出现问题的话涉及到代码的开发、AppID的申请、打包过程、以及微信调用等环节,问题很难在第一时间得到定位。

 

为了解决项目中存在的微信分享出现闪退的情况,我足足花了四天的时间才找到了出错的地方。

 

微信分享出现错误的具体表现是:通过USB数据线连接Hbuilder和手机进行联调测试,微信分享一调一个准,速度杠杆滴。打包发布后,再进行分享,其他的环节都没问题,但微信就是闪了一下以后就没有反应了,这个速度也很快,快到还没看清是不是微信的界面呢,就没反应了。

 

从问题出现的时机上来判断,应该是微信自身的问题,因为只要点击了分享后,分享的代码没有问题的话,后续的环节就交给微信来执行了。

 

其他同事也不懂这个问题,在这个问题上没有帮上忙,反倒是乱下结论,混淆视听,浪费了不少的时间。当然最后问题的解决,也是同事最新怀疑出了问题的环节,我实际进行测试后才发现了错误。

 

原来问题就出现在微信分享AppID的申请上,申请AppID时填写的应用签名错了,以至于分享的代码不能够正常地调出微信的分享界面,这也从侧面验证了我之前问题是出在微信那边的思路。

 

在微信开放平台申请AppID时,需要填写应用签名一项。因为受到mui社区上一篇文章的误导,我把应用签名写成了Google开发者证书中的SHA1签名,但微信官方需要的并非是这个这个签名。

 

mui、HBuilder、 HTML5+实现分享微信分享界面闪退的问题

 

微信在手机上调用分享界面时是需要这个申请AppID时填写的应用签名的,他们在审核AppID申请后把这个签名值保存在数据库里。当第三方应用调取微信分享时,微信会匹配这个AppID中隐含的应用签名是否和实时从手机上获取到的应用签名匹配,如果匹配则进入微信分享,如果不匹配就闪退。

 

所以这个应用签名一定要写对,如果没有写对,你就去哭吧,微信是不会提醒你错误出在哪里的!!

 

那么应用签名如何获取呢?有个叫GenSignature的App,只要输入应用的包名就可以获取到该应用的应用签名。我在百度云上分享了这个App,复制这个链接和密码就能下载: https://pan.baidu.com/s/1qYib3eG 密码: 7r1k  或者直接点击阅读原文打开链接。

 

mui、HBuilder、 HTML5+实现分享微信分享界面闪退的问题

 

事后我对这件事情的分析是遇到问题我们应该不慌不忙,沉着应对。在这个过程中我们作为代码的当事人,是最清楚事情原委的主导者,抱怨或者随波逐流,唯唯诺诺,接收别人所谓“热心的帮助”只会让我们把精力浪费在不必要的地方,所以自己的事情还得自己做,自己挖的坑哭着也要填完。

 

通过HTML5+实现微信分享容易遇到的坑:

1. 没有正确设置权限: 微信分享需要分享权限,需要正确配置分享SDK中的AppID和AppSecret,这些是最基本的也是最重要的内容。

2. AppID申请过程中填写的内容一定和真实的内容有出入:在申请AppID时,应用签名和包名一定要正确,这两个如果填错,是很难发现问题出现的环节,所以多检查几次也不为过。

3. 打包时包名写错:打包时需要填写包名和Google开发者证书,能否正确调用微信分享,成败在此一举。

mui、HBuilder、 HTML5+实现分享微信分享界面闪退的问题

 

        4. 分享的内容为空:分享的内容有时也会影响到分享的结果,微信分享字段有三个:title,content和href,这三个字段最好都不要为null。

转自:https://mp.weixin.qq.com/s/auewkBOo4cwBQI1Zz1hZ2Q?