TL;DR
和微信的交互主要分为三种情况:
微信的各种神坑
设置分享参数的坑
设置分享参数的时候,一般这样:
特别注意shareOptions的link参数,这里必须一定肯定是绝对路径!!!!
年少无知,写成相对路径,即使开了debug模式,也根本不会报错,分享出去的页面不带设置的标题和描述,最蛋疼的是安卓部分手机连发送到朋友都调不起来。。。
上传图片的坑
开始用的是微信生成的serverId,但是服务器那边有时候下载会发现图片失效,于是为了改变这个bug,决定把图片变成base64上传到服务器,就用到wx.getLocalImgData这个接口。但是,紧接着就有坑了:
- 第一项localId传的参数在ios上可以直接用数组,但是安卓不行,所以解决方案是
localIds[0]
. - ios生成的图片是自带
data:image/jpeg;base64,
而且后缀是’.jgp’,对,你没看错,所以判断是果子之后替换 - android生成的图片不带前缀,所以手动加
- 最坑的是,目前知道的是魅族手机,因为base64太长,可能其做限制了,所以发送不了请求。我觉得可能有些手机处理不了字符串过长的问题吧。
|
|
微信里的分享网页
在微信里打开页面,分享给朋友或者其他,显示相应的标题,描述等。
官网demo
右击查看源代码
目前已经实现在网页里可以实现很多功能。
大约步骤是:
- wx.config
- wx.ready(function(){ 某些功能接口 })
微信里的网页需要授权登录
在微信里打开页面,需要用户授权微信登录,从而获得用户微信的某些信息。
|
|
用户授权之后,url变成 redirect_uri/?code=CODE&state=STATE。
pc网站,需要微信扫二维码登录
在自己的app里调起微信的相关功能
在app调起微信,是需要下载sdk的。
app里面的网页需要调起微信相关功能的话,需要app接入sdk之后,再提供给前端接口去调用。换言之,app里的网页用到微信功能必须要app实现功能,才能提供接口让网页调用实现。
说一句,如果参数传错,能调起来朋友圈的icon,但是调不起来微信,所以一旦出现这种情况,需要和app对下是否参数传错的问题。