关于微信分享接口开发

首先要注意的几点:

1.微信开放的分享接口到底是干什么的
微信分享接口文档:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
这个微信分享接口只是让你在微信内分享时配置要分享的内容用的,并不是在App里点分享时会弹出的那个有一排应用的分享框框,这个一定要明确。

2.微信分享的配置信息
如果是在公司里做微信分享相关的东西,那配置肯定是要找公司里管理微信公众账号的人去要的,其实就是一个标识,表明你的身份,让微信知道是谁在用TA的接口

微信分享接口的配置:
1.基本信息配置

wx.config({
    debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
    appId: '', // 必填,公众号的唯一标识
    timestamp: , // 必填,生成签名的时间戳
    nonceStr: '', // 必填,生成签名的随机串
    signature: '',// 必填,签名,见附录1
    jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});

2.设置要分享的内容

wx.ready(function(){

    // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
});

经过这两步之后其实微信分享就结束了,但是我在这个过程中却踩了不少的坑,并不是微信分享本身多难,而是跟业务和框架有关。在使用微信接口的过程当中还应该注意几点:
1. 调试的时候开启debug模式,不然在移动端调试的时候根本不知道什么地方出错了。调试模式下,微信接口会把所有设置过的分享信息在concole里打出来,如果是在手机端,那么在配置微信接口,设置分享信息的时候都会有弹出框。但是不管配置正确还是不正确,弹出框的标题都是‘error message’,但是如果配置成功后半部分是‘config:ok’
2. 调用接口的时机。如果数据都是异步获取,那么一定要在数据都到位的情况下调用微信接口。我怀疑连续几次设置分享信息会导致只有第一条有效,还未进行验证。
3. 这跟微信接口无关。我是来吐槽一下公司的登录接口奇葩的一B,用户登录后会在本地存个用户标识,如果前端向服务端发起任何跟用户相关的数据请求,一定要带上本地的这个标识,因为服务端根本没有保存已登录用户的任何信息。那么问题来了,就算调试的时候手机可以直接连接电脑访问测试链接,但是获取不到用户标识,导致我死活获取不到分享出去的链接。就这破问题折腾了一晚上,想想都让人觉得想死。

接下来准备把代码结构再整理整理,将这个分享做成好用的组件

—-2016-04-10 18:20

这周分享又出现了两个bug,但是和微信分享并没有关系,是在调用App里分享的时候出了问题。

坑1:h5里调用app分享接口的时候需要根据url里的os参数判定当前是不是app环境,但是并不是所有app里的url都会带上os参数,比如登录之后再跳转回来os参数就不见了。解决:sessionStorage里存个标识

坑2:在微信分享里设置参数的时候,如果分享的链接为空,那么默认是当前页面链接,并且在测试环境下这么调用app分享接口也是好的,但是线上就报错了,分享不出去,并且设置成location.href也是报错了,根本设置不进去。原因是啥我也很想知道,但是拼个url字符串放进去就好了,猜测是因为ios开发对location这一类浏览器操作做了屏蔽,location.href取出来虽然是字符串,但是执行的时候才会去取值,毕竟是 跨域了,直接设置字符串放进去才是安全的。

—-2016.4.16 15:02

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值