# 微信官网开发文档
微信JS-SDK说明文档
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115
文档里面介绍我们需要调用的接口以及js代码.
## 针对分享接口
因为公司业务要求显现分享功能,但是查看了网上的很多资料各抒己见,搞得头晕,最后总结一句话,不是自己,看着都恶心.最后自己整理了一下,以下要注意
1. wx.config页面加载就要将微信的config进行配置,此配置中注意点就是名称要和jsapi开发文档要求的 一致;appid和signature、jsApiList这三个参数一定要配置正确,
```//微信配置信息
wx.config({
debug: true,
appId: 'wxb55af0be94ef2136',
timestamp: time_stamp,
nonceStr: nonce_str,
signature: signa_ture,
jsApiList: ['onMenuShareAppMessage','updateAppMessageShareData']
// 功能列表,我们要使用JS-SDK的什么功能
});
```
2. wx.ready()其实就是在config配置准确之后wx会自动调用此接口来执行里面的代码,
3. wx.onMenuShareAppMessage 就是要调用的分享接口,官方说此接口要被wx.updateAppMessageShareData代替,(你千万别信) 因为你会发现使用ios/Android两种系统任何一个接口都不能被这两个系统使用,只能配合使用.代码如下 :
``` //这个是安卓操作系统
if (isAndroid) {
wx.ready(function () {
// 获取“分享给朋友”按钮点击状态及自定义分享内容接口
wx.onMenuShareAppMessage({
title: "Android自定义标题", // 分享标题
desc: "Android自定义描述", // 分享描述
link: "http://域名:9999/images/dddd.jpg",//分享点击之后的链接
imgUrl: 'http://jyjava.piaost.com:9999/images/dddd.jpg', // 分享图标
// type: 'link', // 分享类型,music、video或link,不填默认为link
},function (res) {
alert("Android");
}
);
});
}
if (isIOS) {
//这个是ios操作系统
wx.ready(function(){
// 获取“分享给朋友”按钮点击状态及自定义分享内容接口
wx.updateAppMessageShareData({
title: "ios自定义标题", // 分享标题
desc: "ios自定义描述", // 分享描述
link: "http://域名/yashanvip/mallvoid.html",//分享点击之后的链接 连接可以是接口也可以是一个图片路径*(绝对路径)
imgUrl: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1552983302090&di=534e841d8bb599c67a871fd589e0d53b&imgtype=0&src=http%3A%2F%2Fimgsrc.baidu.com%2Fimgad%2Fpic%2Fitem%2F9358d109b3de9c82036507ac6681800a19d84395.jpg', // 分享图标
type: 'link', // 分享类型,music、video或link,不填默认为link
success: function () {
alert("ios")
}
});
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
});
}
```
4.wx.error接口是在wx.config配置失败后调用的
```wx.error(function (res) {
//打印错误消息。及把 debug:false,设置为debug:ture就可以直接在网页上看到弹出的错误提示
console.info("错误:"+JSON.stringify(res))
})
```
5.注意点: 加密使用的sha1加密 link: 必须是域名 url:是动态获取的
如果报错:permission denied 说明使用正式环境 invalid signature:说明你的签名一定是错的不容置疑,看看参数名是不是符合要求,参数是否正确,还有就是时间戳的长度是不是10位.
有什么疑问?我会通过回复,回答你们.一起进步.大家努力....