H5页面实现微信分享功能及踩坑历程
看了官网,写的也挺简单的,也在网上搜索了一些demo,然后开始写;
我理解的误区;
我一直以为可以跟app分享一样,有个分享按钮点击触发分享;搜索了很多博客,得到结论,前几年好像是可以通过按钮引导分享,但是微信后来禁用了,只能在网页右上角点击分享;
相信很多人看到这,跟我有一样的想法,那还要分享接口有什么用,微信网页本身自带了微信分享功能;
还是有用的,可以自定义编辑分享内容(例如标题,内容,图片等)
开始回归正题;
第一步JSSDK引入,我用的最新sdk文件
<script src="http://res2.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
第二步,注册接口
第三步,自定义分享内容;
var url = location.href.split('#')[0];
$.ajax({type: "get",url: "http://XXX.com", //替换网址,xxx根据自己jssdk文件位置修改dataType: "jsonp",jsonp: "callback",jsonpCallback: "success_jsonpCallback",data: {"url": url},dataType: "json",timeout: 5000,error: function(XMLHttpRequest, textStatus, errorThrown) {if(textStatus == "timeout") { // 请求超时console.log('请求超时!')}},success: function(data, textStatus) {var data = data.result;if(textStatus == "success") { // 请求成功//请求成功,接着注册接口wx.config({debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。appId: data.appId, // 必填,公众号的唯一标识timestamp: data.timestamp, // 必填,生成签名的时间戳nonceStr: data.nonceStr, // 必填,生成签名的随机串signature: data.signature, // 必填,签名jsApiList: [ // 必填,需要使用的JS接口列表"checkJsApi","updateAppMessageShareData", //分享到微信及QQ"updateTimelineShareData" //分享到朋友圈”及“分享到QQ空间]}); wx.ready(function() {console.log('wx.ready')var shareData = {title: '精选商品分类,超低秒杀价,等你来购!',desc: '超实惠,推荐给你们!', link: 'http://zyapptest.chinahoroy.com/horoyapp/hryh5/html/mall/proList/index.html?account='+encodeURI(_this.account),imgUrl: 'http://zyapptest.chinahoroy.com/horoyapp/hryh5/images/qst/default.jpg'};//这一步是验证接口权限wx.checkJsApi({jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage'],success:function(res){console.log(res)},error:function(err){console.log(err)}}) ; wx.updateAppMessageShareData(shareData); //分享到微信好友或者qq好友wx.updateTimelineShareData(shareData); //分享到朋友圈或者qq空间wx.error(function(res) { //分享失败打印alert(res.errMsg);});})}}
})
心想,这样就完成了一系列的分享代码,然后进入测试阶段!!
在微信开发工具里面,测试接口正常,打印分享成功的内容;
然而,在移动端,微信环境打开,完全无反应,自定义内容不起作用;代码跟没写一样;
我记得还出现一种状况,我们是用的测试号测试,必须先关注,不然会有错误提示,忘记截图了,类似就是无权限;(仅测试号需要关注)
开启debug模式,开启debug模式会把每次调用微信api的结果弹出;再测试,alert(errMsg:updateAppMessageShareData:permissiondenied)
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
网上再次搜索了很多文章,终于找到一篇有用的;JSSDK1.4以后,微信分享功能用新接口,但是在接口注册的时候,必须把新老接口都加上去,不然不起作用,如下;
wx.config({debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。appId: data.appId, // 必填,公众号的唯一标识timestamp: data.timestamp, // 必填,生成签名的时间戳nonceStr: data.nonceStr, // 必填,生成签名的随机串signature: data.signature, // 必填,签名jsApiList: [ // 必填,需要使用的JS接口列表"checkJsApi",'onMenuShareTimeline', //分享到微信朋友圈'onMenuShareAppMessage', //分享给微信朋友'onMenuShareQQ', //分享到QQ'onMenuShareQZone', //分享到QQ空间"updateAppMessageShareData", //分享到微信及QQ(新接口)"updateTimelineShareData" //分享到朋友圈”及“分享到QQ空间(新接口)]
});
然后,再测试,果然起作用了,弹出errMsg:updateAppMessageShareData:ok
分享功能调试好,记得关闭debug模式
参考:
微信JSSDK1.4.0分享功能以及分享接口的坑
H5页面实现微信分享功能及踩坑历程相关推荐
- Android微信h5分享,H5网页实现微信分享功能
H5网页实现微信分享功能 一,首先在公众号管理后台"公众号设置"的"功能设置"里填写JS接口安全域名,域名需要通过ICP备案,没有备案域名可以用SAE.BAE等 ...
- 微信分享实践和踩坑实践
微信分享的接入步骤 1.申请测试账号 微信官方文档提供了测试账号 接口测试账号申请; 当然也可以申请自己订阅号,但是个人公众号没有分享的接口权限,测试账号是有的(但是测试账号在真机上分享过程都是正确的 ...
- 移动端H5页面关于软键盘的一些踩坑记录
最近一个项目需要做一个留言的功能,需求很简单,点击留言按钮底部弹出留言框,然后发送留言给后台就行了,还有一个就是页面要实现复制功能.讨论需求的时候我预想到了手机上软键盘的弹出可能会有一些bug,不过需 ...
- 安卓系列手机的H5页面背景色失效的问题(踩坑手机小米8)
标题安卓系列手机的H5页面背景色失效的问题 今天做手机端,微信小程序开发,根据实际需求,手写一个遮罩层 页面开发完毕之后,进行真机测试,出现问题了,ios是好的 Android一款小米8就不行了 在打 ...
- h5在微信自定义分享php,h5页面自定义微信分享
官方文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html 开发准备:公众号绑定好需要开发的服务器域名. ...
- H5页面 禁止微信分享转发按钮
一 , 设置微信jssdk , jsApiList中加上 "hideMenuItems" 因为这次项目微信jsApiList都是另一个部门的人配的 , 不是我这边弄 , 我只用把 ...
- 微信分享功能填坑过程
要对H5页面进行微信分享自定义标题,描述,图片的开发,遇到各种坑,记录下填坑的过程. 参考文章: http://www.jb51.net/article/98467.htm https://my.os ...
- H5页面调用微信支付
1.H5页面使用微信支付,首先需要注册微信公众号,在设置与开发>公众号设置>功能设置中配置业务域名.JS接口安全域名.网页授权域名.支付功能页面需在此域名链接下的页面. 2.加入域名后,就 ...
- [html] H5页面在微信中如何禁止分享给好友和朋友圈?
[html] H5页面在微信中如何禁止分享给好友和朋友圈? 利用JSBridge实现调用微信提供的一些原生功能,可以通过调用隐藏操作菜单来实现禁用分享. 代码如下: document.addEvent ...
最新文章
- 阿里员工哀叹不读书已经没有出路,招聘简历基本都是985
- 手把手教你上手python库pydbgen(附代码、安装地址)
- 谷歌地图控件,通过扩展实现GMAP的自定义绘图系统
- 【转】解决wine中文乱码的问题
- write/read/send/receive函数比较
- mysql 优惠卷表设计_这些年MySQL表设计踩过的坑!
- 其利断金前一句是什么_绍兴晚报丨裘亚黎说|围城外的灵魂拷问:人为什么要结婚?...
- aic bic mdl
- HDU多校1 - 6955 Xor sum(字典树+贪心)
- c语言知道坐标求线段长度,C语言编写程序:输入任意3线段的长度,判断组成三角形的种类...
- c语言——什么时候使用getchar()读取换行符
- 【ZJOI2015】幻想乡 Wi-Fi 搭建计划【几何】【贪心】【dp】
- Qt|C++-最简单的OpenGL(变颜色的三角形)
- spring3,上传文件ApplicationHttpRequest cannot be ca...
- dtft变换的性质_dtft(dtft和dft的关系区别)
- ArangoDB高级查询(一)
- 川土微电子|数字隔离器替代光耦817
- 计算机三种桌面图标,例举win7电脑桌面图标排列方式
- 14 POJ3363 Annoying painting tool
- 清除linux系统盘空间,linux磁盘空间不足怎么办,磁盘清理方法
热门文章
- 薪水最高的十大专业知乎_薪酬最高的十大按需IT认证:2020年版
- mysql dbuild_config_MYSQL5.5源码编译配置选项
- XOR Linked List
- Apache -ab工具安装与使用-windows
- 魅族16s是Android几,魅族16s,小米9,Reno三大安卓旗舰对飚,究竟哪个更值?
- 域环境的搭建(保姆级教程)
- 通俗易懂的告诉你内卷juǎn化是什么东西?
- PS2020wids版最新插件集合:傻瓜化美容软件
- Dbeaver复制粘贴操作导致软件闪退问题
- BS软件性能测试纲要