vue3引入JS-SDK实现h5分享小卡片、跳转微信小程序功能

这篇具有很好参考价值的文章主要介绍了vue3引入JS-SDK实现h5分享小卡片、跳转微信小程序功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

微信js-sdk官方文档:
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html

一、实现h5分享小卡片

想要实现的效果:
vue3引入JS-SDK实现h5分享小卡片、跳转微信小程序功能
1.登录微信公众平台,进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。

2.通过npm引入js-sdk

npm install weixin-js-sdk -S

安装成功后,可以在package.json中找到"weixin-js-sdk"
vue3引入JS-SDK实现h5分享小卡片、跳转微信小程序功能
3.在main.js中,将js-sdk挂载到全局

import {
    createApp
} from 'vue'

const app = createApp(App)
app.config.globalProperties.$wx = jssdk

4.配置js-sdk
这里我新建了一个js文件,wechatSdk.js,用来专门操作js-sdk

import {
  getWechatConfig
} from "@/services/common.js";  //为你提供timestamp、nonceStr、signature的后端接口

const APPID = "xxxxxxxxxxxxxxxxxx"; //公众号的appId(注意不是小程序的appid,我太菜了,我就用错了)

/**
 * 获取微信配置
 * @param {*} tag 调用页面的this
 * @param {*} share_title 分享标题
 * @param {*} share_desc 分享描述
 * @param {*} share_link 分享链接
 * @param {*} share_cover 分享封面(配图)
 * @returns 
 */
export const wechatConfig = (tag, share_title, share_desc, share_link, share_cover) => {
  var wx_host = window.location.href.split('#')[0]; //后端获取签名,需要前端传url,url要求看注解
  const cover = share_cover || 'https://hbimg.huaban.com/a2a9a71b293f6664b342e0cefc6e1fccd5f921f83cfa5-RoYLU8_fw658/format/webp'; //不重要的默认图片地址
  return new Promise((resolve, reject) => {
    getWechatConfig(wx_host).then((res) => {
      if (res.code == 200) {
      
        const config = {
          debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
          appId: APPID, // 必填,公众号的唯一标识
          timestamp: res.data.timestamp, // 必填,生成签名的时间戳
          nonceStr: res.data.noncestr, // 必填,生成签名的随机串
          signature: res.data.signature, // 必填,签名
          jsApiList: ["updateAppMessageShareData", "updateTimelineShareData"], // 必填,需要使用的JS接口列表,注意查看官方文档,部分js接口即将废弃,我这里用的是新的
          openTagList: ["wx-open-launch-weapp"], // 可选,需要使用的开放标签列表(当前标签用于跳转微信小程序)
        };
        tag.$wx.config(config); //通过config接口注入权限验证配置
        tag.$wx.ready(function () { //通过ready接口处理成功验证
          console.log("js-sdk配置成功!");
          
          //分享给朋友
          tag.$wx.updateAppMessageShareData({
            title: share_title || "默认标题", // 分享标题
            desc: share_desc || "默认描述", // 分享描述
            link: `${wx_host}#/${share_link}`, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
            imgUrl: cover, // 分享后显示的封面图
            success: function () {
              console.info("分享给朋友");
            }, // 设置成功回调
          });
          
          //分享到朋友圈
          tag.$wx.updateTimelineShareData({
            title: share_title || "默认标题", // 分享标题
            link: `${wx_host}#/${share_link}`, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
            imgUrl: cover, // 分享图标
            success: function () {
              // 用户点击了分享后执行的回调函数
              console.info("分享到朋友圈");
            }
          })
          return resolve(true)
        });
        tag.$wx.error(function (res) {
          // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
          console.info("config信息验证失败");
          console.info(res);
          return reject(false)
        });
      }
    });
  })
}

注解:
vue3引入JS-SDK实现h5分享小卡片、跳转微信小程序功能

5.在需要使用sdk的vue页面,引入wechatSdk.js

import { wechatConfig } from "@/utils/wechatSdk.js";
	  wechatConfig(
        this,
        "分享标题",
        "分享描述",
        "分享链接",
        "分享封面(配图)"
      ).then((res) => {
        //需要获取方法执行结果,可以加.then这一段;
        //不需要可以不加
      });

debug开启true时,会弹窗、在控制台输出信息,提示你config结果,你可以通过官方提供的《附录5-常见错误及解决方法》快速定位并解决自己可能遇到的问题,直到弹窗提示ok。
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#66

调试成功后,你可能会发现,点击对话框中的链接进入网页,点击发送给朋友,分享出去的还是链接,不是小卡片。(我也不知道为什么)你可以长按链接,收藏它,然后从微信我的收藏中找到链接,点击进入网页,选择发送给朋友,这时分享出去的,就是小卡片了。

二、跳转微信小程序

从h5跳转微信小程序,需要区分两种场景:
(1)通过微信内的浏览器打开h5,然后跳转微信小程序;(点击微信对话框中,别人分享给你的链接;点击朋友圈中,别人分享的链接)
(2)通过微信外的浏览器打开h5,然后跳转微信小程序;(在百度浏览器等,微信以外的软件,输入网页地址访问)
此处实现的是第一种,微信内跳转小程序,微信同样也提供了文档。
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html#21

注意:h5跳转小程序,必须用户点击标签按钮,才能跳转,也就是说,需要用户主动触发。
vue3引入JS-SDK实现h5分享小卡片、跳转微信小程序功能
1.跳转微信小程序的前提,是jssdk配置成功,且基于上面wx.config的配置,一定要有

openTagList: ["wx-open-launch-weapp"]

2.将官方文档提供的示例,插入到你需要跳转小程序的地方,作为跳转入口。(跳转小程序的页面一定引入过wechatSdk.js,并调用 wechatConfig 配置成功)

<wx-open-launch-weapp
  id="launch-btn"
  username="gh_xxxxxxxx" //所需跳转的小程序原始id
  path="pages/home/index?user=123&action=abc" //所需跳转的小程序内页面路径及参数
  env-version="trial" //所需跳转的小程序版本,合法值为:正式版release、开发版develop、体验版trial
>
  <script type="text/wxtag-template">
    <style>.btn { padding: 12px }</style>
    <button class="btn">打开小程序</button>
  </script>
</wx-open-launch-weapp>

小程序的原始id,在微信公众平台的设置-基本设置的最下面,帐号信息-原始ID中,以gh_开头。

插入后,vue3项目会报错:
vue3引入JS-SDK实现h5分享小卡片、跳转微信小程序功能
因为<script>在vue2中是可以直接写进template的,但在vue3中不行,所以需要使用<div v-is="'script'"></div> 以替代 <script><style>也不要了,换成内联样式,替换后的代码如下:

<wx-open-launch-weapp
  id="launch-btn"
  username="gh_xxxxxxxx" //所需跳转的小程序原始id
  path="pages/home/index?user=123&action=abc" //所需跳转的小程序内页面路径及参数
  env-version="trial" //所需跳转的小程序版本,合法值为:正式版release、开发版develop、体验版trial
>
  <div v-is="'script'" type="text/wxtag-template">
    <button style="padding: 12px">打开小程序</button>
  </div>
</wx-open-launch-weapp>

nice文章来源地址https://www.toymoban.com/news/detail-501379.html

到了这里,关于vue3引入JS-SDK实现h5分享小卡片、跳转微信小程序功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • H5项目中使用微信JS-SDK(以H5项目批量上传图片为例,兼容IOS及安卓)

    H5项目中使用微信图片上传相关sdk,主要用于解决 1.安卓手机无法一次选择多张图片进行上传问题;2.控制IOS系统手机一次可无限量选择图片上传的问题 一、准备工作:公众号配置 验证所需使用的sdk是否符合需求 可在使用场景中,打开微信官方提供的 微信SDKDemo 链接,或企业

    2024年02月07日
    浏览(37)
  • 企业微信h5开发(即JS-SDK),一不小心,就会掉进坑,进入死胡同

            最近在开发企业微信的业务,可以借此机会学习到企业微信的开发,这让我非常开心、激动。殊不知,企业微信的开发让我很头疼,遇到了非常多的坑。在这里我记录一下,希望大家不要像我一样掉进坑里面。         图1.1          图1.2         在企业微信

    2024年02月11日
    浏览(25)
  • 微信公众号 H5 JS-SDK wx.config 报错 invalid url domain 及 invalid signature 错误原因及解决方式

    在项目进行JSSDK使用的过程中,出现了很多问题,其中报错invalid url domain 以及 invalid signature最多,也最头疼,部分坑在文档里也并没有写清楚,这里就简单说下这两个报错的原因和解决方式 当报错invalid url domain时 其实离成功不远了,错误原因也很直白,就是url并没有在公众

    2024年02月08日
    浏览(32)
  • Vue H5项目,怎么引入uni.webview sdk,调用uni postMessage实现手机蓝牙连接打印功能(uniapp)

    目前公司Vue H5项目,用webview打包成APP,现产品提出这样打包出来的app运行较慢,需要用uniapp方式(即使用HBuilder编辑器来打包H5)来打包,那需要的基座就不是安卓的基座而是uniapp的基座,而H5项目实现手机扫描功能就需要调用uniapp的基座的方法。 Vue2 开发的移动端项目(H5项

    2024年02月20日
    浏览(33)
  • uniapp(vue3) - 微信小程序平台使用import引入外部js文件出现undefined,正常引入js文件(sdk插件)文件路径正确但console.log控制台打印时却是undefined

    注:uniapp 小程序平台! 在使用 uniapp 微信小程序端导入 SDK 的过程中,您可能会遇到这样的情况: 使用 console.log() 打印导入的模块名称时,实际输出的名称并不是您期望的名称。这是因为 uniapp 进行了编译和打包处理后,会将代码重新命名以减小文件大小和提高执行效率,包

    2024年02月10日
    浏览(61)
  • vue3项目引入本地js文件,实现一个音频播放按钮

    目前有一个需求就是在网页上放置一个音乐控制按钮,并且是在vue3项目里面。于是小白的我遇到了2个问题,第一个问题是如何实现没有进度条的播放按钮,这个网上有现成的代码,可以通过js代码切换不同的图片或者是别的样式,并不算难;第二个问题是如何在vue3项目中引

    2024年02月19日
    浏览(32)
  • JS-SDK微信支付开发攻略

      一、吐槽篇 一个字——坑!两个字——很坑!三个字——非常坑!首先,微信支付接口作为微信开发接口的一部分,竟然有一本书那么厚的官方文档,共36页,更重要的是,这36页还不能把开发的流程说清楚,描述过于分散,过度分类,导致遇到一个问题的时候很难定位,

    2024年02月08日
    浏览(35)
  • 【小程序】微信 JS-SDK的使用:

    一、配置JS安全域名 1 .申请一个安全域名 2 .去微信公众平台下载MP_verify_WCdi1jnSEaGX59y0.txt,并将该文件方法到安全域名下,并确保再安全域名下能访问到这个文件,即http://xxxxxxxx/MP_verify_WCdi1jnSEaGX59y0.txt可以访问 3 .绑定js安全域名 4 .将该安全域名下的IP名单都添加到 公众平台—安

    2024年02月15日
    浏览(27)
  • 微信开发相关:使用微信 JS-SDK 接口

    通过微信 JS-SDK 接口,可以在自己写的 JS 程序中使用很多微信的功能。例如微信里的卡片式链接、拍照上传下载图片、录制播放上传下载音频、获取地理位置、使用摇一摇、扫一扫、微信支付等功能。 微信开发文档 首先需要有一个公众号,该公众号是需要能认证的(企业认证

    2024年02月09日
    浏览(28)
  • vue3 vue.config.js配置Element-plus组件和Icon图标实现按需自动引入

    打包时,报警告,提示包太大会影响性能 在页面直接使用,直接使用 SVG 图标,当做一般的 svg 使用 icon使用时需要用以下两种方式方式: 如果用在el-button里面的icon属性上使用,用SVG方式无效,还是需要引入再使用(不知道有没有其他方式) 注意: 使用 :icon=\\\"Edit\\\" 则icon的大

    2024年02月06日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包