记录uniapp的APP端分享到微信好友,链接为小程序页面,分享失败的BUG

摘要:
心累总结总的来说,使用uni-app框架在APP端分享到微信首先需要在微信开放平台审核你的应用并配置好私钥MD5值,MD5值必须得没有冒号的全小写,跟打包的证书签名一致。如果是要分享到小程序页面,则需要在开放平台关联小程序的原始id。

记录uni-app的APP端分享到微信好友,链接为小程序页面,分享失败的BUG

分享到微信好友,链接为小程序端报错

16:59:19.617 fail:{"errMsg":"share:fail [Share微信分享:-6]send, http://ask.dcloud.net.cn/article/287","errCode":-100,"code":-100} at pages/product/detail.vue:300

step1

找原因:由于我没有遇到过,怎么办呢?

因为用的是uni-app框架开发的,所以我直接在社区里面找,知道找到了以下解决方案

[关于‘ 分享到"微信"失败: -100 - Share微信分享:-6] ’ 的最终解决方案 - DCloud问答

问题解决方案长这样

1. 这个问题根本原因是你微信开发平台上的签名与你的应用签名不一致。顺便一提,微信开放平台上的签名是应用签名的keystore文件的MD5值。MD5值是xx:xx:xx:xx:xx:xx:xx这种格式的秘钥,你复制到微信开发平台上就应该全部转换为小写以及去掉冒号,如f221hghf2h3jhf3k1j这样的一串字符。  
2. 更简单地,可以用[签名检测工具](https://res.wx.qq.com/open/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android2.apk)工具检查一下app的签名,用法就是下载该工具到手机上,打开输入包名即可得到一串字符,不出意外跟上面的方法得出字符串是一样的。  
3. 如果你后面改回来,确认签名已经一致了,但是依旧报这个错误,那么无疑就是微信缓存问题,因为微信记录了app分享的值,删掉微信,重装微信就OK了。  
   以上方法由广大DCloud用户摸索出来,我负责总结,如果在这个问题上你还有其他的情况产生,欢迎评论留言。  
   参考链接:[分享错误码](http://ask.dcloud.net.cn/article/287)以及该文章下面的评论。欢迎点赞。 

然后我仔细比对了应用签名,发现没有问题。

step2

我又去试试分享到微信好友文字的方法

uni.share({
    provider: "weixin",
    scene: "WXSceneSession",
    type: 1,
    summary: "我正在使用HBuilderX开发uni-app,赶紧跟我一起来体验!",
    success: function (res) {
        console.log("success:" + JSON.stringify(res));
    },
    fail: function (err) {
        console.log("fail:" + JSON.stringify(err));
    }
});

发现依旧报错啊,打不通分享,也测试了其他分享,发现依旧不通,无法分享到微信好友

step3

然后我觉得是打包配置不对,mainifest.json文件配置的分享有问题,果然,我开始配置成小程序的appid了,结果是微信开放平台申请的APPID

我修改成我们在微信开放平台申请的APPID后,打包测试了,然后发现分享链接到小程序页面依旧无法成功。

报 分享类型不正确

但是其他的链接,比如简单文本及图片分享都可以分享给微信好友了。

step4

我然后百思不得姐,炸裂啊,真的有点心态爆炸。

我百度了,终于按照关键词【uniappAPP分享到微信打开是小程序】搜索出来一篇文章

文章链接

uni.share({
    provider: 'weixin', // 分享服务提供商(即weixin|qq|sinaweibo)
    scene: "WXSceneSession", //分享到聊天界面
    type: 5, //分享形式 5:小程序
    imageUrl: 'https://img-cdn-qiniu.dcloud.net.cn/uniapp/app/share-logo@3.spng',//官方规定分享图比例是5:4,其它尺寸可能显示不全。
    title: '欢迎体验uniapp',
    miniProgram: {
        id: 'gh_abcdefg', //微信小程序原始id
        path: 'pages/index/index', //点击链接进入的页面
        type: 0, //微信小程序版本类型,可取值: 0-正式版; 1-测试版; 2-体验版。 默认值为0。
        webUrl: 'http://uniapp.dcloud.io' //兼容低版本的网页链接
    },
    success: ret => {
        console.log(JSON.stringify(ret));
    }
});

注:微信小程序原始id是指:微信公众平台 > 设置 > 基本设置 > 账号信息 > 原始ID

原始id啊,我TM把小程序id写成了小程序AppID

图片01

step5

然后把其换成原始ID,接下来就终于步入正轨

但是报微信开放平台APP没有和小程序在同一个账户下

这个简单,我觉得是配置问题,然后在开放平台上绑定这个小程序,就ok了,大功告成。

分享终于成功了。心累

图片02

总结

总的来说,使用uni-app框架在APP端分享到微信首先需要在微信开放平台审核你的应用并配置好私钥MD5值,MD5值必须得没有冒号的全小写,跟打包的证书签名一致(去掉冒号转小写即可)。然后在打包文件配置微信开放平台申请的APPID,即可打通分享。

如果是要分享到小程序页面,则需要在开放平台关联小程序的原始id。然后再调用api即可

免责声明:文章转载自《记录uniapp的APP端分享到微信好友,链接为小程序页面,分享失败的BUG》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇R语言学习——数据框侦测卡 变色龙侦测卡 chameleon-Mini(迷你变色龙) (一)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

代码自动生成工具,2小时搞定智能硬件产品Demo

常见的智能硬件设备多是由单片机、微处理器、微控制器等构成的嵌入式系统,通过WIFI、蓝牙、GPRS等无线通信技术连接云服务器,传统的开发方式需要开发人员根据自己的产品功能完成MCU 通过无线通信/芯片模组与云服务器交互的协议,而通过MCU代码自动生成工具,云端会根据产品定义的数据点生成对应产品的设备端代码。使用自动生成的代码开发产品,就不必再处理协议相关的...

iOS学习——iOS常用的存储方式

不管是在iOS还是Android开发过程中,我们都经常性地需要存储一些状态和数据,比如用户对于App的相关设置、需要在本地缓存的数据等等。根据要存储的的数据的大小、存储性质以及存储类型,在iOS和Android中哪个都有多种存储方式。其中,iOS中的存储方式主要包括以下六类: plist文件(属性列表) preference(偏好设置) NSKeyedA...

手写签名提取工具(图片)

操作说明 示例场景:拿到一张签名的纸张,手机拍照传到电脑上,用此工具软件导入后,进行简单操作,即可提取到手写的签名的电子版png图像文件版本。 ### 主要功能 ### @支持多种原始图像文件格式的导入(*.jpg;*.jpeg;*.bmp;*.png)@支持对图像中有签名的ROI区域选取,方向纠正@单个像素级别的修改(排除或添加)@支持签名样式笔墨的颜色...

Flask基础之返回值与form表单提交

目录 1.Python 现阶段三大主流Web框架 Django Tornado Flask 对比 2.Flask的安装 3.Flask的第一个简单应用 4.Flask中的render_template 5.Flask中的redirect重定向 6.Flask中的formdata表单提交 7.Flask中的formdata表单的文件传输 8.Flask...

cppcheck,今天下载了这个软件,准备研究学习一下了

简单地说,这个就是个普通的代码审计软件, 官网:http://cppcheck.net/ 使用起来也不麻烦。留个记录,告诉未来的我,如何使用。 首先去官网下载安装包,这个最好还是下载,但是不下载也没问题。 下载安装包只是希望在单独使用的时候,可以看到界面,可以更方便地使用。不想看界面就不要下载。 安装包地址:https://github.com/danma...

uniapp APP端使用指纹

使用插件指纹模板: https://ext.dcloud.net.cn/plugin?id=358 Fingerprint模块管理指纹识别 要使用指纹识别功能需要具备条件: 确认当前设备环境是否支持指纹识别, 当前设备是否设置密码锁屏, 当前设备是否已经录入指纹。 (Android平台6.0及以上系统支持,只识别标准Android的指纹API,仅适配G...