看了官网,写的也挺简单的,也在网上搜索了一些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页面实现微信分享功能及踩坑历程相关推荐

  1. Android微信h5分享,H5网页实现微信分享功能

    H5网页实现微信分享功能 一,首先在公众号管理后台"公众号设置"的"功能设置"里填写JS接口安全域名,域名需要通过ICP备案,没有备案域名可以用SAE.BAE等 ...

  2. 微信分享实践和踩坑实践

    微信分享的接入步骤 1.申请测试账号 微信官方文档提供了测试账号 接口测试账号申请; 当然也可以申请自己订阅号,但是个人公众号没有分享的接口权限,测试账号是有的(但是测试账号在真机上分享过程都是正确的 ...

  3. 移动端H5页面关于软键盘的一些踩坑记录

    最近一个项目需要做一个留言的功能,需求很简单,点击留言按钮底部弹出留言框,然后发送留言给后台就行了,还有一个就是页面要实现复制功能.讨论需求的时候我预想到了手机上软键盘的弹出可能会有一些bug,不过需 ...

  4. 安卓系列手机的H5页面背景色失效的问题(踩坑手机小米8)

    标题安卓系列手机的H5页面背景色失效的问题 今天做手机端,微信小程序开发,根据实际需求,手写一个遮罩层 页面开发完毕之后,进行真机测试,出现问题了,ios是好的 Android一款小米8就不行了 在打 ...

  5. h5在微信自定义分享php,h5页面自定义微信分享

    官方文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html 开发准备:公众号绑定好需要开发的服务器域名. ...

  6. H5页面 禁止微信分享转发按钮

    一  , 设置微信jssdk , jsApiList中加上 "hideMenuItems" 因为这次项目微信jsApiList都是另一个部门的人配的 , 不是我这边弄 , 我只用把 ...

  7. 微信分享功能填坑过程

    要对H5页面进行微信分享自定义标题,描述,图片的开发,遇到各种坑,记录下填坑的过程. 参考文章: http://www.jb51.net/article/98467.htm https://my.os ...

  8. H5页面调用微信支付

    1.H5页面使用微信支付,首先需要注册微信公众号,在设置与开发>公众号设置>功能设置中配置业务域名.JS接口安全域名.网页授权域名.支付功能页面需在此域名链接下的页面. 2.加入域名后,就 ...

  9. [html] H5页面在微信中如何禁止分享给好友和朋友圈?

    [html] H5页面在微信中如何禁止分享给好友和朋友圈? 利用JSBridge实现调用微信提供的一些原生功能,可以通过调用隐藏操作菜单来实现禁用分享. 代码如下: document.addEvent ...

最新文章

  1. 阿里员工哀叹不读书已经没有出路,招聘简历基本都是985
  2. 手把手教你上手python库pydbgen(附代码、安装地址)
  3. 谷歌地图控件,通过扩展实现GMAP的自定义绘图系统
  4. 【转】解决wine中文乱码的问题
  5. write/read/send/receive函数比较
  6. mysql 优惠卷表设计_这些年MySQL表设计踩过的坑!
  7. 其利断金前一句是什么_绍兴晚报丨裘亚黎说|围城外的灵魂拷问:人为什么要结婚?...
  8. aic bic mdl
  9. HDU多校1 - 6955 Xor sum(字典树+贪心)
  10. c语言知道坐标求线段长度,C语言编写程序:输入任意3线段的长度,判断组成三角形的种类...
  11. c语言——什么时候使用getchar()读取换行符
  12. 【ZJOI2015】幻想乡 Wi-Fi 搭建计划【几何】【贪心】【dp】
  13. Qt|C++-最简单的OpenGL(变颜色的三角形)
  14. spring3,上传文件ApplicationHttpRequest cannot be ca...
  15. dtft变换的性质_dtft(dtft和dft的关系区别)
  16. ArangoDB高级查询(一)
  17. 川土微电子|数字隔离器替代光耦817
  18. 计算机三种桌面图标,例举win7电脑桌面图标排列方式
  19. 14 POJ3363 Annoying painting tool
  20. 清除linux系统盘空间,linux磁盘空间不足怎么办,磁盘清理方法

热门文章

  1. 薪水最高的十大专业知乎_薪酬最高的十大按需IT认证:2020年版
  2. mysql dbuild_config_MYSQL5.5源码编译配置选项
  3. XOR Linked List
  4. Apache -ab工具安装与使用-windows
  5. 魅族16s是Android几,魅族16s,小米9,Reno三大安卓旗舰对飚,究竟哪个更值?
  6. 域环境的搭建(保姆级教程)
  7. 通俗易懂的告诉你内卷juǎn化是什么东西?
  8. PS2020wids版最新插件集合:傻瓜化美容软件
  9. Dbeaver复制粘贴操作导致软件闪退问题
  10. BS软件性能测试纲要