【微信H5分享配置】解决IOS需刷新后才能分享成功

踩坑之路——微信授权&微信分享 踩坑之路——微信授权&微信分享 一、微信授权 1.1H5微信授权流程 判断是否有openid 如果没有话进行微信接口请求 返回code 把code传给后台接口 获取到openid 授权成功 注意: 返回地址必须是外网地址 1.2 绑定域名 微信测试号域名要与回调地址一致 否则报redirect_uri参数错误 二、 H5微信分享 2.1引入JS文件 通过npm安装微信的js-sdk,或者在index.html页面中直接加script标签来引用,这里采用npm安装, npm install wei 阅读详情

原因

最近在做公众号H5分享,出现了很无语的bug,安卓直接调用分享设置后分享成功,IOS死活不行,必须要刷新页面后才能设置分享配置成功。

现在微信必须是先进行updateAppMessageShareData配置后(onMenuShareAppMessage虽然是旧版的方法,但是全网都建议写上,我也不知道为什么),用户手动点击右上角三个点…,点击转发给朋友才能弹出转发弹窗,不可以代码调用分享。

解决办法如下(俺是vue2的写法,其他框架大差不差)

在页面初始化时判断机型,如果是首次进入且是IOS,需刷新页面后再调用配置

 created() {
        if (this.isIOS()) {
            let iosReload = sessionStorage.getItem('iosReload');
            if (iosReload) {
                // ...执行业务
                  this.getConfig();
            } else {
                // 如果是IOS,且是第一次刷新页面,则刷新当前页面
                sessionStorage.setItem('iosReload', true);
                window.location.reload();
            }
        } else {
                // ...执行业务
            this.getConfig();
        }
    },

请求后端,获取微信配置,设置分享

    methods: {
        isIOS() {
            return /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
        },
		getConfig() {
            const that = this
            try {
                that.loading = true;
                // 后端请求地址
                getWeiXinConfig({ url: location.href }).then((res) => {
                    if (res.success) {
                        wx.config({
                            debug: false,
                            appId: , // 必填,公众号的唯一标识
                            timestamp: , // 必填,生成签名的时间戳
                            nonceStr: , // 必填,生成签名的随机串
                            signature: , // 必填,签名
                            jsApiList: [
                                'checkJsApi',
                                'updateAppMessageShareData',
                                'updateTimelineShareData',
                                'onMenuShareAppMessage', // 旧的接口,即将废弃(网上说是要把旧接口也填上去,不然注册会失败)
                                'onMenuShareTimeline', // 旧的接口,即将废弃
                                'onMenuShareQQ', // 旧接口,分享给QQ好友
                                'onMenuShareQZone' // 旧接口,分享到QQ空间
                            ] // 必填,需要使用的JS接口列表
                        });
                        wx.ready(function () {
                            wx.updateAppMessageShareData({
                                title: '', // 分享标题
                                desc: '', // 分享描述
                                link: , // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
                                imgUrl: , // 分享图标
                                success: function () {
                                    // 设置成功
                                    // alert('设置分享成功')
                                },
                                fail: function (e) {
                                   
                                }
                            })
                            wx.onMenuShareAppMessage({
                                title: '', // 分享标题
                                desc: ``, // 分享描述
                                link: ``, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
                                imgUrl: ``, // 分享图标
                                success: function () {
                                    // 设置成功
                                    // alert('分享成功')
                                },
                                fail: function (e) {
                                    // alert(JSON.stringify(e))
                                    // alert(e)
                                }
                            })
                            wx.error((err) => {
                                // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名
                                // console.log('验证失败', err)
                                // alert(JSON.stringify(err))
                            })
                        })
                    }
                }).finally(() => {
                    that.loading = false
                })
            } catch (e) {
                that.loading = false
                // commons.showMsg(e)
            }
        },
     }
关于微信二次分享,自定义分享参数不生效问题 在a分享给b之后,然后a打开和b的聊天记录,然后点击刚刚分享的卡片,在去分享的时候,设置的分享参数信息就失效了,在项目的app文件中记录一下当前的url路径,存储到本地,然后判断是不是ios,如果是的话,取本地的缓存地址。,安卓无问题,(b打开刚刚分享的卡片一样不行,自定义的分享参数没生效,提示失败)👆上面的文章给了我很好的思路,于是排查自己的项目问题。... 阅读详情

相关推荐

h5微信本地调试 vue_VUE开发微信H5页面总结

写在前面刚入门前端的时候写过很多的微信H5页面,时隔多年感觉应该是手到擒来,不曾想竟很是费了一些功夫。现在把本次开发过程中遇到的问题以及我是如何解决的,做个记录。防止自己以后再去解决解决过的问题。github:github.com/qq9694526/v…一、微信网页授权网页授权流程分为四步,这里只说前端需要做的,其中的第一步:跳转授权页面获取code。这里分享下我的授权逻辑(下图),它有两个优点...

weixin_34138585的博客 891

IOS 微信首次分享签名失败,二次刷新后就能成功的BUG(调用微信jssdk 时报错: “invalid signature“的解决方案)

问题: 在IOS手机微信端,从A页面(http://a.com/A) 跳转到B页面(http://a.com/B)后,B页面进行分享时就会报签名(invalid signature)错误。 分析: 从A页面跳转到B页面时,由于是使用vue-router(react-router-dom)切换,都是操作浏览器历史记录,所以ios端微信浏览器锁定的url的还是A页面的url。 这个时候,是不是很多人都会认为,既然页面路由变化了,那我重新请求下url签名接口,不就可以了。呵呵呵,你会发现报错:invalid si

weixin_43956521的博客 3062

从零到一:STM32 CubeMX与WS2812B的DMA驱动艺术

本文详细介绍了如何使用STM32 CubeMX和DMA技术驱动WS2812B RGB LED灯条,从硬件设计到软件实现的全过程。通过CubeMX配置定时器和DMA,实现高效的PWM波形生成与数据传输,解决传统GPIO控制资源占用高的问题。文章还提供了颜色编码、动画效果实现及常见问题解决方案,助力开发者快速掌握智能LED控制技术。

weixin_28278377的博客 975

uniapp解决微信H5自定义分享在IOS下失效的问题

第三步:传入的url要经过前端处理一下window.location.href.split('#')[0]第一步:打开uniapp后找到manifest.json——web配置——把路由模式改为hash。第二步:在需要触发转发的页面进入页面就触发一个方法。

LY1879276369的博客 896

DCDC--控制方式(Control Mode)

DCDC反馈控制方式

网始如芯个人博客 1万+

SecureCRT 9.0最新版安装与激活全攻略(附驱动识别技巧)

本文提供SecureCRT 9.0最新版的详细安装与激活指南,并重点解析了嵌入式开发中串口连接的硬件驱动识别技巧。内容涵盖从安全获取软件、解决USB转串口驱动兼容性问题,到配置SSH与串口会话的完整流程,旨在帮助开发者和工程师高效部署并精通使用这款终端仿真利器。

star的博客 401

h5使用 jssdk微信分享,ios分享内容为空,地址不正确,刷新第二次就正确了

2.wxapi.js中 调整newpath。vue尽量使用hash模式.3.router.js路由中。

weixin_60885570的博客 872

第3讲:单端传输线的时域TDR仿真(基于实战的第一次仿真视角切换)

本文为CST仿真系列教程的第3讲,主要介绍传输线阻抗(TDR)的两种仿真方法:基于S参数的频域计算和基于高斯脉冲的时域计算。文章详细演示了在CST PCB Studio中修改电容参数、设置TDR仿真参数(包括截止时间和采样点数)的操作步骤,并通过对比实验展示TVS寄生电容对阻抗曲线的影响。最后将两种TDR方法的结果进行对比,验证了两种方法的一致性。本教程适合硬件工程师通过时域波形直观分析传输线阻抗特性,是信号完整性分析的重要技能。

一只豌豆象的博客 210

【Vue】H5浏览器实现【微信分享】功能的终极解决方案

分享H5浏览器完成微信分享卡片功能,特别需要注意:iOS设备出现invalid signature签名错误,很可能是因为 wx.config中的realAuthUrl与当前页面url不一致造成的!

小安驾到的博客 1万+

姿态传感器/陀螺仪之LSM6DS3TR-C应用原理图设计

LSM6DS3TR-C是一款由意法半导体(STMicroelectronics)推出的高性能、低功耗的惯性测量单元(IMU),集成了3轴加速度计和3轴陀螺仪,用于测量加速度、角速度以及设备的姿态和运动。

corlin6688的博客 858

YOLOv11安卓端部署终极指南:从训练到NCNN移植,30分钟搞定手机实时检测!

本文详细介绍了YOLOv11模型在安卓设备上的NCNN部署全流程。主要内容包括:1) 环境配置要求(Python3.8+、PyTorch、NCNN框架等);2) COCO2017数据集准备与配置;3) 模型训练建议(使用RTX3090,50-100个epoch);4) 模型导出转换步骤(ONNX格式转换、NCNN优化);5) 安卓端实现的关键优化(快速sigmoid实现、纯C++NMS等)。项目在安卓CPU模式下可实现20FPS的稳定检测,并提供了激活函数选择、模型量化等性能调优建议。通过参考多个开源项目,

FJN110的博客 1713

uniApp H5公众号自定义分享ios需要手动刷新一次

第一次写uniapp H5公众号自定义分享。本以为这个是挺简单的,写了几下子很快就能分享出去了,但是高兴没有多久呀,发现苹果系统竟然要手动刷新一次,才能正常分享。为了搞定这个,通宵了一晚上也没有得出个所以然。踩这个坑最主要的还是不够了解uniapp对Android系统和ios系统的机制的路径是不一样的。然后我还以为这个坑跟之前写uni-appH5微信支付iOS系统出现当前页面url未注册问题是一个问题。事实证明这样解决不生效。后来试了各种debug调试这种方法,还以为是执行先后的问题,又往这个方向整,还是.

磨磨叽叽季 3396

Hermes Agent 彩蛋大盘点:藏在终端里的浪漫

本文主要介绍了Hermes Agent 彩蛋大盘点:藏在终端里的浪漫,希望能对使用Hermes Agent的同学们有所帮助。 文章目录 1. 前言 2. Spinner 动画 3. Kawaii 表情 4. 思考动词 THINKING_VERBS 5. 皮肤主题 6. 启动 Banner 7. 工具 Emoji 8. 内置人格 9. SOUL.md —— Agent 的灵魂 10. BOOT.md —— 启动自动执行 11. 随机 Tips 12. 统计总览

weixin_43178406的博客 7万+

解决h5使用 jssdk做微信分享,ios分享内容地址不正确,刷新第二次就正确了

解决h5使用 jssdk做微信分享,ios分享内容地址不正确,刷新第二次就正确了 关于微信分享 ios出现无效的问题 在开发微信h5分享时出现了ios只会在初始化首页的时候进行初始化设置,后面相对个别页面进行特殊化配置的时候,比如跳转链接,图片的修改 在ios上无法生效,但在安卓上是有效的, 填坑之路 刚开始 一顿 Google 方法很多但是却没有效果, 使用了 一个方法 就是设置重定向。 结果,...

v_Guo的博客 4032

华为OD机试真题2025双机位A卷 Java&Go 实现【采购订单】

在一个采购系统中,采购申请(PR)需要经过审批后才能生成采购订单(PO)。每个PR包含商品的单价(假设相同商品的单价一定是一样的)及数量信息。系统要求对商品进行分类处理:单价高于100元的商品需要单独处理,单价低于或等于100元的相同商品可以合并到同一采购订单PO中。针对单价低于100的小额订单,如果量大可以打折购买。

MISAYAONE的博客 1241

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

解决微信H5自定义分享在IOS下失效的问题(js-sdk: invalid signature)

在H5页面要做一个自定义分享,所以用到了微信的 js-sdk 。安卓下没问题,IOS报错 invalid signature 网上查了许多其他人写的答案,按照其他人说的改动之后还是不行,故总结下来以便后人。 大家先按照其他人的方法排查,如果还不好使再看我的做法。 经过一番根据官方文档的配置,最终config如下 let href = location.href.split('#')[0] ...

掉漆的博客 5921

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

(拿走不谢)H5微信分享时,在苹果手机分享一直不行,公开微信分享完整工具,以及微信地图

做微信分享时,在苹果手机分享一直不行,就尝试监听URL变化,发现不行。后来用刷新页面解决了。 watch: { $route(to, from) { /** * route是异步改变的,所以,在created()函数、mounted()函数,用this.route是异步改变的,所以,在created()函数、mounted()函数,用this.route是异步改变的,所以,在created()函数、mounted()函数,用this.route.fullPath获取的是 * 上一个页面的链接,不是当前页面的

公z号:职场爱学习 2823

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

关于h5在ios和Android上的差异

最近在做了几个h5页面后,碰到了许多iOS和Android上的差异,特在此总结一下,以防再入坑。 1. title 问题。 Android可以用 document.title来动态改变标题,**ios不可以,需要通过加入一个iframe来让ios刷新title** ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190416085914820.png?x...

weixin_44249467的博客 3769

H5自定义分享

如果我们点击浏览器上三个点进行分享,分享出去无疑是一个链接,用户体验起来可能就没有那么好了,而且现在很多用户对链接都很警惕的 这时候自定义分享出现了,在实现的过程中踩了挺多坑的,爬出一个又跌进另一个 先说一下具体实现的方法,最后再说我踩的坑以及如何爬出来 首先需要引入微信jssdk 我这里通过npm的方式 npm install weixin-js-sdk --save 在需要用到的地方引入一下 const wx = require("weixin-js-sdk"); 配置wx.co

m0_50278775的博客 2362

微信分享功能实现,兼容安卓和IOS

IOS微信分享注意事项 ios分享图标不能超过32K link参数带中文或者特殊字符,带中文的url在安卓中应该也是会出问题的,但是安卓会自动encodeURIComponent(),而ios不会。所以如果url参数中带了中文字符,将参数encodeURIComponent()编码,再提交代码,ios可以正常分享。 ...

jstljspservlet的博客 1408

h5公众号分享朋友、朋友圈

前言 微信分享(使用微信JS-SDK)、微信JS-SDK是面向网页开发者提供的基于微信内的网页开发工具包。JSSDK使用官方文档(官方使用手册) 详解一下我的使用流程以及踩坑记录,我做的项目属于公众号h5项目,今天突然接到需求对主推的某两个页面自定义分享内容,之前做过微信小程序和支付小程序的分享,都是直接使用特定的API修改标题、描述、图片、链接,想着贼简单,预估工时共要了一天,一把辛酸泪~~ ...

zwy1231的博客 2954

ios分享之后立即获取分享状态_微信invalid signature,微信IOS分享失效,微信刷新之后IOS不能分享,spa单页面微信分享,wx.ready不执行?...

微信的坑,哭着也要填完。小白选手刚接触微信公众号网页,产品出来个需求,要求h5网页在任何页面都可以分享,并且分享的内容是自定义的(B端配置),我一听这还不简单,微信官方文档里写的明明白白,好说。我用的是vue2版本+微信的jssdk是npm安装的1.4.0的版本。使用的是vue-router的< history >模式。大概有ABCD四个页面吧。自己想的很美好,也上网查阅了前辈们说的大...

weixin_36403165的博客 980

微信h5页面缓存

微信h5页面缓存问题前言先说说之前开发的问题来看看现在的效果:因为我的分享页面是在一整个项目中的,默认就是采用的第一种方案,所以我直接修改了图片的名称,打包编译后上传js文件到服务器,得到的效果是: 前言 移动端开发中,经常会碰到微信缓存的问题,总体感觉而言,有太大的无可奈何,但是问题总归是要解决的。 先说说之前开发的问题 由于之前无论是公众号还是微信分享链接,都是经过充分测试后发布上线的,上线后...

woyidingshijingcheng的博客 9988

H5微信支付,我终于从坑里爬出来了~

H5微信支付爬坑记

m0_50278775的博客 2262

VUE开发微信H5页面总结

写在前面 刚入门前端的时候写过很多的微信H5页面,时隔多年感觉应该是手到擒来,不曾想竟很是费了一些功夫。现在把本次开发过程中遇到的问题以及我是如何解决的,做个记录。防止自己以后再去解决解决过的问题。 github:github.com/qq9694526/v… 一、微信网页授权 网页授权流程分为四步,这里只说前端需要做的,其中的第一步:跳转授权页面获取code。 这里分享下我的授权逻辑(下图),它...

weixin_33796205的博客 1846

微信h5 签名错误 php,详解Vue开发微信H5微信分享签名失败问题解决方案

关于Vue中路由使用history模式,开发微信H5页面分享时在安卓上签名有效成功,但是在IOS设备上一直报错签名失效问题问题描述:在Vue开发过程中,路由使用History模式下,在使用微信分享时,在微信开发者工具上一切正常。在安卓上一切正常。 但是!!!在IOS上反复报签名错误。以下是真机测试截图,划掉黑线的是我个人IOS设备分享出来一直是服务号,接着下面分享出来自定义内容是安卓分享正常,话不...

weixin_33871105的博客 520
上一篇: Three.js的gltf模型自动居中
下一篇: 解决火狐浏览器无法重写localStorage的setItem,使用Proxy从而实现对localStorage数据变动的监听
Fantasywt
博客等级 码龄7年 63粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值