微信开发笔记

最近用做了个微信分享功能,踩了一些坑,在此总结一下,供自己往后留意。如看到了我的文章发现有什么疑问或者建议,欢迎留言讨论指教。

此功能分两个部分,一个是支持分享,一个是用户授权获取用户信息。

 

分享部分:

  引入JS文件

  根据微信JSSDK文档,绑定域名后引入JS文件,调用config后便可使用微信提供的接口。我们的项目用的是webpack+react+backbone。在引用JS文件的时候,文档上写着支持AMD,CMD模块化引入。本来想复制weixin-js-sdk到我们的项目中,再通过require引入。

!function(a,b){
"function"==typeof define&&(define.amd||define.cmd)?define(function(){return b(a)}):b(a,!0)}
(this,function(a,b)
{function c(b,c,d){a.WeixinJSBridge?WeixinJSBridge.invoke(b,e(c),function(a){g(b,a,d)}):j(b,d)}
function d(b,c,d){a.WeixinJSBridge?WeixinJSBridge.on(b,function(a){d&&d.trigger&&d.trigger(a),g(b,a,c)}):d?j(b,d):j(b,c)}
function e(a){return a=a||

引入时却报错,原因可能是webpack的bug,引入模块时 (this,function(a,b) 中的this指向export,导致this变成undefined,将this直接改为window可解决,但不是好的解决方法。最后,通过script-loader解决了问题。在npm中安装script-loader,然后用require('script!./vendor/jweixin-1.0.0');引入即可。

还有一种方法是通过npm引入,https://www.npmjs.com/package/weixin-js-sdk。

  ready接口

  根据文档所说,ready接口是用来处理成功验证的,然而在我的实践中发现,不管config是否成功,都会进入ready。如有报错,会进入error报错后再进入ready。所以微信好像并没有提供成功验证后的回调函数。

  分享接口

  刚开始的时候我以为分享接口是用来触发分享的,后来发现只是设置分享信息的接口。调用此接口可以设置分享出去的消息的title,简介,和小图。但不能用button触发分享。它只能监听右上角的点击分享动作来分享。网上查到的可用button触发分享的方法也都已被微信屏蔽。如需用button分享,可在点击后产生罩层,指引用户使用右上角分享按钮。不过要注意这样做是否会被认为是诱导分享。我个人认为,这个指引动作是用户点击分享按钮后才出现的,既然用户点击了按钮,说明他是资源分享的,不因存在诱导用户分享的问题。

 

获取用户信息部分

  授权

  要获取用户信息,首先要设置回调域名,如需使用unionid机制,需前往微信开放平台绑定账号。我们用的是服务号,可以使用网页授权功能,订阅号无法使用。要注意用户管理中的获取用户基本信息只有在用户关注公众号后才能获取,如想使用网页授权获取用户信息则不需用户关注。其余部分文档中讲的比较详细,根据文档做一般不会有什么问题。

https://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html

 

其他

  预览图片接口

  项目中有个预览图片的需求,微信提供的预览图片接口很好用,本来一切都很顺利,但是突然发现在ios7.X 不知道哪一版微信的情况下,预览图片返回时页面会刷新,大大影响了用户体验。估计是微信版本过老导致。所以之后我还是自己写了一个预览图片的功能。如果要对兼容老版本要求比较高的话要慎用预览图片接口。

 

以上是我接触到的一些接口及踩到的一些坑,没有接触的部分不在其中,如有错误,请多指教。

posted @ 2016-12-04 21:09  Erin.ma  阅读(453)  评论(0编辑  收藏  举报