小程序分享链接提取

我们可以使用微信开放平台的 web_urls 接口来获取小程序分享到微信内的链接,具体步骤如下:

在开发者工具中打开小程序管理后台,进入“设置”-“开发设置”-“网络设置”,选择“允许访问本机的WebSocket接口”。

在小程序开发中,添加一个网络请求的处理函数 wx.request({ url: 'https://api.weixin.qq.com/cgi-bin/webwx-bin/web_urls', success (res) { const data = res.data.web_urls; // 分享链接使用的接口返回的数据格式如下: // { // "touser": "OPENID", // "msgtype": "text", // "text": "xxxxx", // "url": "https://www.example.com/page/xxx" // } const url = data.url; console.log(url); // 在前端将分享链接展示在页面上 }, fail (error) { console.log(error); } })

在前端页面中通过 wx.cloud.callFunction({ // 在这里调用上面获取到的分享链接 name: 'getShareUrl', data: { title: '分享标题', desc: '这是一段描述', link: 'https://www.example.com/page/xxx', imgUrl: 'https://img.example.com/image.jpg', }, }) 调用上面获取到的分享链接。

需要注意的是,由于微信的限制,每个小程序每天只能向微信分享一次,并且每次分享只能获取到一个分享链接。如果需要多次分享,需要等待一段时间后再次调用 wx.request() 接口获取分享链接。

如果需要在小程序中分享多个链接,可以使用一个字典将链接和标题、描述等信息保存起来,然后在 wx.request() 接口中传递这个字典作为参数,示例代码如下:

// 在小程序开发中,保存分享链接和标题等信息到一个字典中
data = {
  title: '分享标题',
  desc: '这是一段描述',
  link: 'https://www.example.com/page/xxx',
  imgUrl: 'https://img.example.com/image.jpg',
}

// 在前端页面中调用上面保存的分享链接
wx.cloud.callFunction({
  name: 'getShareUrls',
  data: {
    title: data.title,
    desc: data.desc,
    link: data.link,
    imgUrl: data.imgUrl,
  },
})

需要注意的是,每个小程序每天只能向微信分享一次,并且每次分享只能获取到一个分享链接。如果需要多次分享,需要等待一段时间后再次调用 wx.request() 接口获取分享链接。