实现微信内置浏览器分享功能(前期准备+VUE前端部分代码+调试+坑记录)

这篇具有很好参考价值的文章主要介绍了实现微信内置浏览器分享功能(前期准备+VUE前端部分代码+调试+坑记录)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、基础准备

1、登录微信公众号(需已认证),找到[【设置与开发】>[【公众号设置】>【功能设置】>【js接口安全域名],在下面填写你的域名。

实现微信内置浏览器分享功能(前期准备+VUE前端部分代码+调试+坑记录),前端,微信,vue.js

2、在【设置与开发】>【基本配置】中拿到 appid&开发者密码 appSecret ,给后端用生成签名时用到。

二、前端代码部分

1、下载微信sdk

npm i weixin-js-sdk

2、在需要用的地方引入sdk

import wx from 'weixin-js-sdk'

3、获取微信公众号配置,提供appid和密钥给后端开发

4、获取当前页面的地址传给后端生成配置信息

  let shareUrl = sessionStorage.getItem('firstHref') ? sessionStorage.getItem('firstHref')
    : location.href.split('#')[0]
  • 地址必须是当前页面的完整地址,如果用的是hash模式需要去除‘#’部分之后的信息,只保留前面的部分。

这里划重点:针对ios需要存储首次进入页面的时的地址作为参数传给后端(否则后续IOS端分享将会失效),安卓则不需要特殊处理,可以在每个页面都调用一下location.href.split(‘#’)[0]。主要原因如下:

IOS:每次切换路由,SPA的url是不会改变,发起签名请求的url参数必须是当前页面的url(就是第一次进入页面时的url)

Android:每次切换路由,SPA的url是会变,发起签名请求的url参数必须是当前页面的url(所以安卓端无需处理)

5、调用后端接口后将配置信息传给微信,wx的api需要写在wx.ready里面

getWxConfig({ shareUrl }).then((res) => {
    wx.config({
      debug: true, // 开启调试模式
      appId: res.appId, // 必填,公众号的唯一标识
      timestamp: res.timestamp, // 必填,生成签名的时间戳,由开发者生成的当前时间戳
      nonceStr: res.nonceStr, // 必填,生成签名的随机串,由开发者随机生成
      signature: res.signature, // 必填,签名
      // 必填,需要使用的JS接口列表
      jsApiList: ['updateAppMessageShareData', 'updateTimelineShareData'],
    })
    wx.ready(function () {
       // 微信分享的数据
        var shareData = {
          imgUrl: 分享图片,
          link: 分享url,
          desc: 分享副标题,
          title:分享标题,
          success: function () {},
        }
      // 自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容
      wx.updateTimelineShareData(shareData)
      // 自定义“分享给朋友”及“分享到QQ”按钮的分享内容
      wx.updateAppMessageShareData(shareData)
    })
  })
}
三、调试

本地调试无法看到效果,需要部署到实际环境中,可以用微信开发者工具中的公众号网页项目看到分享的数据是否成功。
实现微信内置浏览器分享功能(前期准备+VUE前端部分代码+调试+坑记录),前端,微信,vue.js
实现微信内置浏览器分享功能(前期准备+VUE前端部分代码+调试+坑记录),前端,微信,vue.js

四、问题

1、微信内置浏览器点击链接分享为什么不是卡片效果而是链接?

主要原因是微信自定义分享不能直接从外部链接进入分享。简单来说,从卡片进入链接后二次分享可以呈现卡片效果,直接点击链接二次分享还是链接。经过我个人的测试是从链接进入网址后分享出来还是网址,从卡片进入后二次分享则是卡片,如果是外包浏览器卡片在微信浏览器二次分享也是卡片效果。

解决方式:

  • 将链接添加至公众号的自定义菜单中,从公众号菜单进入分享
  • 扫描二维码分享
  • 将链接保存至微信收藏中,从我的收藏进入分享
  • 其余其他地方进入分享都是链接形式

详见微信开放社区的疑难解答:https://developers.weixin.qq.com/community/develop/doc/0002e662950fe06e7c8d8c39f51400

附:官方解释:https://mp.weixin.qq.com/s/7zxqex8DuuWj8cFfDhz2bw

2、IOS端侧分享失效问题?

这个问题上面有解释过,不再赘叙。

3、提示"config:fail,invalid signature"怎么处理?

  • 先按照微信开发者文档自查调取分享接口的url有没有出错。

  • 关于需不需要 encodeURIComponent ,我这里是没做这个处理,因为传输到后端一般有对这个进行处理操作,你也可以test是不是需要加这个。(PS:我就是因为加上这个导致报错了)
    实现微信内置浏览器分享功能(前期准备+VUE前端部分代码+调试+坑记录),前端,微信,vue.js

4、提示‘the permission value is offline verifying’是什么原因?文章来源地址https://www.toymoban.com/news/detail-854050.html

  • 按照文档先检查有没有写错;
  • 检查公众号js安全域名中是否包括被分享的网址域名
  • 实现微信内置浏览器分享功能(前期准备+VUE前端部分代码+调试+坑记录),前端,微信,vue.js

到了这里,关于实现微信内置浏览器分享功能(前期准备+VUE前端部分代码+调试+坑记录)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 使用JS(TS)判断页面在 微信 / 微博 / QQ / 支付宝 各APP平台内置浏览器

    主要代码如下 使用 技术点说明 navigator.userAgent.toLowerCase() UserAgent 只读属性返回当前浏览器的用户代理字符串。 先看在 谷歌浏览器 控制台打印的结构: ‘mozilla/5.0 (iphone; cpu iphone os 13_2_3 like mac os x) applewebkit/605.1.15 (khtml, like gecko) version/13.0.3 mobile/15e148 safari/604.1’ 主要判断移

    2024年02月12日
    浏览(28)
  • 微信公众号 - 实现 H5 网页在微信内置浏览器中下载文件,可预览和下载 office 文件(doc / xls / ppt / pdf 等)适用于任何前端技术栈网站,兼容安卓和苹果系统!

    网上的教程都是让你写页面 “引导” 右上角三个点里,让用户自己去浏览器打开,其实这样用户体验并不好。 本文实现了 最新微信公众号 H5 网页(微信内置浏览器中),预览下载 office 文件,安卓和苹果全都支持! 您可以直接复制代码,移植到自己项目中去, 任何前端项

    2024年01月21日
    浏览(60)
  • 【wx-open-launch-app】微信内置浏览器网页唤起app操作和一些坑,偏前端使用开放标签方面

    最近实现了一下微信H5(Android)唤起app功能,使用的是微信开放标签,wx-open-launch-app,使用这个标签后,我们就可以在微信浏览器中唤起对应的app了 官方使用教程: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html 使用教程 需要一个 已验证的微信服务号账号 和 微

    2024年02月20日
    浏览(42)
  • 查看Andriod内置浏览器WebView版本

    查看Andriod内置浏览器WebView版本 方法一:手机上设置中查看 设置–应用程序管理–全部–Android System WebView 方法二:电脑Chome浏览器的devTools中查看 1、连接设备到电脑,打开Android设备的开发者模式,并勾选USB调试授权PC连接到Android设备。 2、在Chrome浏览器打开:chrome://inspect/

    2024年02月06日
    浏览(36)
  • vue实现打印浏览器页面功能(两种方法)

    1,安装 npm install vue-print-nb --save 2,引入 安装好以后在main.js文件中引入 Vue.use(Print); //注册 3,现在就可以使用了 4.如需通过链接地址打印:window.location.href = airway_bill; airway_bill为链接地址。 5.如果内容打印不全,在打印操作时点击更多设置,然后设置缩放。 插件地址:https

    2024年02月02日
    浏览(40)
  • 03 Web全栈 浏览器内置对象/事件/ajax

    浏览器是一个JS的运行时环境,它基于JS解析器的同时,增加了许多环境相关的内容,用一张图表示各个运行环境和JS解析器的关系如下: 我们把常见的,能够用JS这门语言控制的内容称为一个JS的运行环境,常见的运行环境又Nodejs,浏览器,小程序,一些物联网设备等等,所

    2024年02月11日
    浏览(40)
  • UE5内置浏览器插件WebUI简易使用笔记

    之前的项目中为了提高效率,避免使用UE功能不完善的UMG系统,使用了WebUI插件,在UI中内嵌浏览器来展示网页。用Vue框架配合插件制作网页还是比UMG要快很多的,毕竟UE的UI制作插件比较少。 首先在UMG中创建一个新UI,拉一个新的面板,然后在里面加一个WebInterface组件。 之后

    2024年02月04日
    浏览(43)
  • 一文搞懂drag&drop浏览器拖放功能的实现

           拖放功能,即将一个元素从一个区域,通过拖拽,放置到另一个区域。常见的应用是将文件或图片从一个区域,拖放到另一个区域。中文常常把这表述成拖拽,实际上拖拽的描述并不准确,应该叫拖放,因为drag事件和drop事件是成对使用的,即拖拽和放置。        

    2024年04月27日
    浏览(23)
  • 有趣且重要的JS知识合集(18)浏览器实现前端录音功能

    兼容多个浏览器下的前端录音功能,实现六大录音功能: 1、开始录音 2、暂停录音 3、继续录音 4、结束录音 5、播放录音 6、上传录音 初始状态: 开始录音: 结束录音: 录音流程 : 示例中的三个按钮其实包含了六个上述功能,点击开始时开始录音,可以暂停/结束录音,此

    2024年02月04日
    浏览(45)
  • vue2实现二进制流pdf浏览器预览功能

    该方法不需要使用插件  获取后端二进制文件流后直接处理 然后点击调用方法使用

    2024年01月20日
    浏览(53)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包