h5自定义微信分享链接

news/2024/7/10 0:52:19 标签: javascript, 前端, js, vue

未自定义前
请添加图片描述

自定义后
请添加图片描述
1.安装微信jweixin-1.6.0依赖

javascript">"jweixin-1.6.0": "^1.0.0",

2.封装一个wxsdk.js方法
前端要请求后端接口获取公众号的信息并填入

javascript">//  wetchat.js  -- 个人封装
import wx from 'jweixin-1.6.0'; // 这是自己优化的sdk方法,可以解决ios签名报错的一些问题
// import wx from 'weixin-js-sdk'; // 这是官方的微信sdk引入方法
import {
  getConfig
} from '@/api/home'; // 后端接口 (根据自己项目)
export function wxChatShare(param) {  
  let _url = param.url // 当前页面的url
  let data = {}
  data.url = _url
  data.isNew = 1
  getConfig(data) // getConfig是获取微信配置相关信息的接口
    .then(res => {
      if (res.code === '0000' && res.data) {
        // alert('成功')
        let list = res.data
        // 接口返回配置信息
        wx.config({
          debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
          appId: "  ", // 必填,公众号的唯一标识,需在公众号后台配置项目地址
          timestamp: list.timestamp, // 必填,生成签名的时间戳
          nonceStr: list.nonceStr, // 必填,生成签名的随机串
          signature: list.signature, // 必填,签名
          jsApiList: [ // 用的方法都要加进来
            'updateAppMessageShareData',
          ]
        });
        wx.checkJsApi({
          jsApiList: ["updateAppMessageShareData","updateTimelineShareData"], // 需要检测的JS接口列表,所有JS接口列表见附录2,
          success: function (res) {
            // 以键值对的形式返回,可用的api值true,不可用为false
            // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
            console.log('检查', res)
            // alert(res.errMsg)
          }
        })
        wx.ready(function () {
          console.log("paramSDK",param.url);
          //分享给朋友
          wx.updateAppMessageShareData({
            
            title: param.title, // 分享标题
            desc: param.desc, // 分享描述
            link: param.link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
            imgUrl: param.imgUrl, // 分享图标
            success: function () {
              // 设置成功
              console.log("分享成功返回的信息为:", res);
              //   this.$Message.message("设置成功!");
            }
          })
        });
        wx.error(function (res) {
          console.log('验证失败返回的信息:', res);
        });
      } else {
        console.log('错误',res);
      }
    })
}

3.在wxSDkFun函数中调用封装的上面这个方法,wxSDkFun函数得在分享前调用,如页面加载完就执行下,

javascript"> wxSDkFun(data){
      let signLink=''
      //请求微信sdk
      signLink = location.href
      let params = {}
      params.url = signLink //用来给后端接口的参数
      params.title ="唐宋元明"+'短视频分享达人征集令'  //主标题
      params.desc = "测试宣传语言" //副标题
      params.link =location.href,//项目的链接
      params.imgUrl='http://m.qpic.cn/psc?/V10K7lwW1jITpv/45NBuzDIW489QBoVep5mcaGVgwTw6KCN1an5aYY1frFZ18GBkQKu61ECoee2E.wgpvtp*ifkp6OLXYAVzlhm28gToG2Vdlr*5kt8hbiPHs8!/b&bo=yADIAMgAyAABGT4!&rf=viewer_4'   //链接图片地址
      wxChatShare(params) //这个方法就是我开头封装的方法,直接把参数带过就可以了
    },

注:
链接没有自定义效果的话,得将h5地址生成二维码扫码进入后分享
api文档https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#10


http://www.niftyadmin.cn/n/874895.html

相关文章

vue 使用keep-alive 让返回页面不重新刷新(页面缓存)(保持组件状态)

官方说明 vue keep-alive 官方说明 示例 1.在路由配置页添加meta信息 {path: /XXXXXXX,component: XXXXXX,meta:{keepAlive:true //需要缓存的页面} },2.在app.vue 中使用keep-alive包裹需要缓存页面的视图组件 在keep-alive包裹外展示不需要缓存的视图组件 <keep-alive…

小程序跳转另一个小程序并携带参数

小程序官方文档wx.navigateToMiniProgram api地址(打开另一个小程序) 跳转小程序的代码 let token "xxxxxxxxxx" wx.navigateToMiniProgram({appId: XXXX , //被跳转小程序的appIDpath: "XXX/XXX/XXX?tokentoken&typepath" // 被跳转小程序的目标…

小程序vue 发送验证码后冷却功能

vue <button class"getCode" :disabled"isBtnDisable" click"getCode">{{ codeText }}</button>// 组件数据data() {return {codeText: 获取验证码,isBtnDisable: false}},// 组件方法methods: {// 发送验证码getCode() {let i 60…

室内施工图LiSP_有点CAD绘图基础的,可以自学室内设计么?

不请自来~自学是选择的学习方式&#xff0c;其实和你到底有没有基础是没有关系的呢但是我个人建议&#xff0c;面对专业要求这么高的一个行业还是系统的学习学习对个人发展更好些的吧先给你分析一下室内设计未来的发展你就明白了自学可行么&#xff1a;现在总能听到各种呼声&am…

vue 中使用节流和防抖(触发事件中watch中使用)

Tools.js /** fun [function] 需要防抖的函数* delay [number] 毫秒&#xff0c;防抖期限值*/ export function debounce(fun, delay 300) {let timer;return function () {let ctx thislet args argumentsif (timer) {clearTimeout(timer)}timer setTimeout(() > {tim…

华为手机主页面显示一半_华为底部导航栏遮挡布局界面的显示问题

PopupWindow rolePopnew PopupWindow();rolePop.setContentView(popView);rolePop.setWidth(ViewGroup.LayoutParams.MATCH_PARENT);//获取屏幕高度DisplayMetricsdisplaymetrics getResources().getDisplayMetrics();intScreenHeightdisplaymetrics.heightPixels;//获取状态栏…

html2canvas 生成图片并将图片上传为网络链接

安装依赖 npm install html2canvas引入依赖 import html2canvas from html2canvas// 上传图片videoFile(file) {let params new window.FormData()let fileOfBlob new File([file], new Date().getTime() .jpg)params.append(file, fileOfBlob)uploadImgFile( params).the…

error 系统错误 错误码10007_云台壹号剖析金融科技中机器学习模型的错误率

原标题&#xff1a;云台壹号剖析金融科技中机器学习模型的错误率云台壹号认为&#xff0c;为了评估机器模型是否存在过度拟合&#xff0c;可以计算两个指标&#xff0c;样本内错误率(in sample errors)&#xff0c;与样本外错误率(out of sample errors)。其中&#xff0c;错误…