热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微信H5分享配置详解

本文详细介绍了如何在微信H5中配置分享功能,包括域名配置、引入JS文件、配置信息和调用微信JS-SDK接口等步骤。

微信H5分享功能的配置相对复杂,但通过本文的详细介绍,您可以轻松掌握整个过程。

官方文档:JS-SDK说明文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#1


1. 公众号配置

首先,确保您的公众号为企业账号,并在公众号后台配置好允许访问的域名。


2. 引入JS文件

可以通过两种方式引入微信JS-SDK文件:

  • 通过CDN引入
  • 通过npm引入(推荐)

使用npm引入的步骤如下:

npm install weixin-js-sdk --save-dev

引入依赖模块:

// 1. 直接在需要的页面引入
import wx from 'weixin-js-sdk';
// 2. 或者在main.js中,通过Vue原型链全局引入
import wx from 'weixin-js-sdk';
Vue.prototype.$wx = wx;

3. 配置信息

使用 wx.config 方法配置信息:

// 前置动作
// 1. 将当前页面地址提交给后端,以获取配置信息configData
// 2. 推荐提交当前页面地址和参数:window.location.href
// 3. 提交给后端的页面地址必须在公众后台配置好域名
// 4. 本地调试的域名无法正常使用,可以在本地进行域名解析
var cOnfigData= {
  debug: true, // 开启调试模式
  appId: '', // 必填,公众号的唯一标识(后端提供)
  timestamp: , // 必填,生成签名的时间戳(后端提供)
  nonceStr: '', // 必填,生成签名的随机串(后端提供)
  signature: '', // 必填,签名(后端提供)
  jsApiList: ['updateAppMessageShareData', 'updateTimelineShareData'] // 必填,需要使用的JS接口列表
};
$wx.config(configData); // 关键接口

4. 调用微信JS-SDK接口

注意:

  • 调用微信SDK接口时,必须在 wx.config 之后。
  • 调用的接口需要在 wx.configjsApiList 中配置,否则无法使用。
  • 本地调试时,可以尝试“域名重定向”的方式。
  • 分享接口中的URL可以随意填写。
  • 部分SDK接口的参数是必填的,否则会报错。
// 注意:
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后。
// config是一个客户端的异步操作,如果需要在页面加载时调用相关接口,
// 则须把相关接口放在ready函数中调用来确保正确执行。
// 对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
wx.ready(function() {
  // 自定义“分享给朋友”及“分享到QQ”
  wx.updateAppMessageShareData({
    title: '', // 分享标题
    desc: '', // 分享描述
    link: '', // 分享链接
    imgUrl: that.pageData.avatar, // 分享图标
    success: function(setSuccess) {
      console.log('设置成功', setSuccess);
    }
  });
  // 自定义“分享到朋友圈”/“分享到QQ空间”
  wx.updateTimelineShareData({
    title: '', // 分享标题
    link: '', // 分享链接
    imgUrl: '', // 分享图标
    success: function(setSuccess) {
      console.log('设置成功', setSuccess);
    }
  });
  // 隐藏所有非基础按钮接口
  wx.hideAllNonBaseMenuItem();
  // 批量显示功能按钮接口
  wx.showMenuItems({
    menuList: ['menuItem:share:timeline', 'menuItem:share:appMessage'] // 要显示的菜单项
  });
});

完整示例:

wxConfig() {
  let that = this;
  var logInPageUrl = window.location.href;
  var logInPageUrl2 = window.location.origin + '/#/?id=' + that.id;
  var jsApiArray = ['showMenuItems', 'hideAllNonBaseMenuItem', 'updateAppMessageShareData', 'updateTimelineShareData', 'hideOptionMenu', 'showOptionMenu'];
  that.$http('wxConfig_api', { url: logInPageUrl }).then(wxCOnfigRes=> {
    if (wxConfigRes.code == 0) {
      var getData = wxConfigRes.data;
      wx.config({
        debug: false, // 开启调试模式
        appId: getData.app_id, // 必填,公众号的唯一标识
        timestamp: getData.timeStamp, // 必填,生成签名的时间戳
        nonceStr: getData.nonceStr, // 必填,生成签名的随机串
        signature: getData.signature, // 必填,签名
        jsApiList: jsApiArray // 必填,需要使用的JS接口列表
      });
      wx.ready(function() {
        // 自定义“分享给朋友”及“分享到QQ”
        wx.updateAppMessageShareData({
          title: that.pageData.true_name + ' ' + that.pageData.position, // 分享标题
          desc: that.pageData.desc, // 分享描述
          link: logInPageUrl2, // 分享链接
          imgUrl: that.pageData.avatar, // 分享图标
          success: function(setSuccess) {
            console.log('设置成功', setSuccess);
          }
        });
        // 自定义“分享到朋友圈”/“分享到QQ空间”
        wx.updateTimelineShareData({
          title: that.pageData.true_name + ' ' + that.pageData.position, // 分享标题
          link: logInPageUrl2, // 分享链接
          imgUrl: that.pageData.avatar, // 分享图标
          success: function(setSuccess) {
            console.log('设置成功', setSuccess);
          }
        });
        // 隐藏所有非基础按钮接口
        wx.hideAllNonBaseMenuItem();
        // 批量显示功能按钮接口
        wx.showMenuItems({
          menuList: ['menuItem:share:timeline', 'menuItem:share:appMessage'] // 要显示的菜单项
        });
      });
      wx.error(function(res) {
        console.error('config信息验证失败', res);
      });
    }
  }).catch(err => {
    console.error('接口错误', err);
  });
}

推荐阅读
  • 微信小程序中实现位置获取的全面指南
    本文详细介绍了如何在微信小程序中实现地理位置的获取,包括通过微信官方API和腾讯地图API两种方式。文中不仅涵盖了必要的准备工作,如申请开发者密钥、下载并配置SDK等,还提供了处理用户授权及位置信息获取的具体代码示例。 ... [详细]
  • 详细指南:使用IntelliJ IDEA构建多模块Maven项目
    本文在前两篇文章的基础上,进一步指导读者如何在IntelliJ IDEA中创建和配置多模块Maven项目。通过详细的步骤说明,帮助读者掌握项目模块化管理的方法。 ... [详细]
  • JavaScript 动态向 HTML 添加内容的方法
    本文介绍了使用 JavaScript 的 insertAdjacentHTML 和 insertAdjacentText 方法动态向 HTML 页面中添加内容或文本的技术。这些方法允许开发者根据指定的位置精确地插入新的 HTML 或纯文本。 ... [详细]
  • 本文详细介绍了如何在现有的Android Studio项目中集成JNI(Java Native Interface),包括下载必要的NDK和构建工具,配置CMakeLists.txt文件,以及编写和调用JNI函数的具体步骤。 ... [详细]
  • 本文探讨了浏览器的同源策略限制及其对 AJAX 请求的影响,并详细介绍了如何在 Spring Boot 应用中优雅地处理跨域请求,特别是当请求包含自定义 Headers 时的解决方案。 ... [详细]
  • 前端开发中的代码注释实践与规范
    本文探讨了前端开发过程中代码注释的重要性,不仅有助于个人清晰地回顾自己的编程思路,还能促进团队成员之间的有效沟通。文章将详细介绍HTML、CSS及JavaScript中的注释使用方法,并提出一套实用的注释规范。 ... [详细]
  • 任务,栈, ... [详细]
  • 探讨在构建类似Viber或WhatsApp的聊天应用时,如何有效实现客户端(Web、Android、iOS)与服务器之间的连接。本文将分析使用WebSockets标准及其替代方案的优劣。 ... [详细]
  • 本文将指导如何向ReactJS计算器应用添加必要的功能,使其能够响应用户操作并正确计算数学表达式。 ... [详细]
  • 本文探讨了2019年前端技术的发展趋势,包括工具化、配置化和泛前端化等方面,并提供了详细的学习路线和职业规划建议。 ... [详细]
  • 探讨如何利用Electron框架,通过拖动HTML元素(如音乐列表项)到桌面来实现本地文件的复制。 ... [详细]
  • 本文详细介绍了如何在Python3环境中配置Appium1.4.6,并指导如何连接模拟器进行自动化测试。通过本文,您将了解从环境搭建到模拟器连接的完整流程。 ... [详细]
  • 交互式左右滑动导航菜单设计
    本文介绍了一种使用HTML和JavaScript实现的左右可点击滑动导航菜单的方法,适用于需要展示多个链接或项目的网页布局。 ... [详细]
  • YB02 防水车载GPS追踪器
    YB02防水车载GPS追踪器由Yuebiz科技有限公司设计生产,适用于车辆防盗、车队管理和实时追踪等多种场合。 ... [详细]
  • LambdaMART算法详解
    本文详细介绍了LambdaMART算法的背景、原理及其在信息检索中的应用。首先回顾了LambdaMART的发展历程,包括其前身RankNet和LambdaRank,然后深入探讨了LambdaMART如何结合梯度提升决策树(GBDT)和LambdaRank来优化排序问题。 ... [详细]
author-avatar
崔颖2849464
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有