IOS微信浏览器返回事件监听问题
业务需求:从主页进入A订单页面,然后经过各种刷新或点标签加载后点左上角的返回直接返回到主页
采取方法:采用onpopstate事件监听url改变,从而跳转到主页
遇到的问题:安卓上测试没问题;苹果手机微信里进入A页面直接触发onpopstate返回主页,造成类似闪退现象,给popstate监听事件addEventListener加延时后问题依旧,设置flag标志使popstate事件里的跳转函数加延时问题解决,但是只是解决了从主页跳转到A页面的问题,A订单页面点订单跳转到订单详情B页面,从B页面返回A页面时出现了问题,直接触发popstate的回调函数跳转到了主页,而没有留在A页面。目前只有IOS上的微信出现这个问题了,怎么解决?
1

4个回答

1
lilinoscar
低调之人 可以通过pageshow结合popstate事件处理微信的返回问题,详见:http://blog.csdn.net/lilinoscar/article/details/79003216
一年多之前 回复
lxlxlxlxcool
lxlxlxlxcool 我采取的方法就是这个链接的方法啊,但是就是这样才产生了上述所写的遇到的问题
大约 2 年之前 回复

你解决了吗?我也遇到这样的问题了?方便回答一下你是怎么解决的吗

0

我也是遇到同样的问题,有没有解决的方法?

0

我也是遇到同样的问题,请问解决了吗?

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
IOS微信浏览器返回事件popstate监听
问题描述:nn通过监听popstate事件,来判断是否点击返回按钮,比如从A页面跳转到B页面(监听popstate),然后再跳转到C页面,点击返回的按钮,测试成功,包括安卓版,但是问题来了,IOS版的微信,是会立即触法popstate事件,导致直接从C页面跳转到A页面,其他的支付宝(安卓、IOS)、微信(安卓)都是可以,就是微信IOS版不行。nn经过查找相关资料,选择了一个方法,不过有点弊端,但是...
监听微信端,手机端,ios端的浏览器返回事件,pc端关闭事件
直接上代码了,可以监听微信端,手机端,ios端的浏览器返回事件,关闭事件不支持rnrnrnrn当进入该页面,我们就给这个history压入一个本地的连接。当点击返回、后退及上一页的操作时,就进行监听,在监听代码中实现自己操作。rnrnrnrnrnrn下面是完整的代码:rnrnrnrnrnrn[java] viewrn plain copyrnrnrnrnrnrnrn$(function(){  r
解决ios上微信浏览器返回不刷新的问题
解决ios上微信浏览器返回不刷新的问题 n开始用的表单提交,返回参数就丢失,换成url跳转,popstate监听 (注释部分)ios10测试始终有问题,继续搜,最后用pageshow,pagehide完美解决(另外说一句:珍爱生命,远离微信和ios) nvar wxback = { n init :function(){ n //隐藏微信分享按钮等
iOS新版微信底部返回横条问题
之前没有怎么接触过微信开发,只是对H5比较熟。最近维护一个微信公众号的项目,遇到了iOS端返回键的坑。 n描述一下: n从公众号打开页面后,底部有个返回的小横条,恰好也挡住了页面。这不行啊,得解决。nn页面的高度是调用 $(window).height();来获取的,但道理来讲应该没什么问题。 n第一个反应是,要不判断一下设备,如果是iOS则给添加一个高度? n这个想法还没实行呢,就发现了一个现...
微信页面里iphone点返回不刷新问题
> 1.问题描述:微信开发的时候,在公众号菜单中打开一个H5页面(如:分享的视频详情页面),微信授权登录有跳转操作,点击左上角的返回按钮,(由于本页面第一次进来的时候没有加载完就发生了自身页面的跳转),发现会出现卡死的情况。解决方式1:微信页面里iphone点返回进行刷新操作$(function() {n pushHistory();n window.addEventListener(
微信公众号开发 用vue做前端页面 解决IOS返回白屏问题
原文链接地址rnrn问题描述:rn进入A页面——>B页面——>ios自带的返回——>白屏出现——>手动点击白屏处——>问题解决rnrnrn原因分析: rn在ios机器上使用webview开发Vue项目时候,go history(-1), 无法将body的高度拉掉,使得遮住,触发轻点击,方可消除遮罩rnrnrn解决方案实现原理:rnhtml,body都是100%,#app撑起了父元素的告诉,但是浏览
IOS微信内置浏览器history.back();不刷新页面解决办法
最近开发了一下小型投票网页,发现苹果手机的微信内置浏览器history.back();语句能返回上一页但是无法自动刷新,已经被苹果微信内置浏览器坑了太多次了。。。这次总算下定决心找一下解决办法了。rn我详细描述下这坑是这样的,使用流量是一切正常的,但是当使用公司公用无线网时,大概是网速受限,(说起来我司的无线网也是很调皮,刷微博淘宝简直是飞一般的感觉,一刷自己开发的微信企业号网页,就慢成了地里的老
监听微信内置浏览器 返回点击事件
  首先吐槽,微信内置浏览器真的很让人蛋疼;  需求:微站内置浏览器点击返回按钮,跳往指定的页面,而不是返回历史记录.      过程:网上搜到代码都一样,但是测试效果不尽人意,根本达不到想要的效果,jquery去监听点击返回按钮,一会能触发,一会不能触发... 代码不贴了 一搜遍地.      结果:监听这部分的代码 换成用window监听了,当前没发现有什么问题,代码如下:   //防止返回历...
使用history.replaceState 控制微信返回
history.replaceState是将指定的URL替换当前的URL注意:用于替换掉的URL必须是同域的示例:先保存三个页面goto1.html<!DOCTYPE html>n<html lang="en">n<head>n <meta charset="UTF-8">n <title>goto1</
解决iOS微信底部返回横条问题
最近做微信公众号的开发,遇到 iOS新版微信的底部会出现返回小横条的坑。从公众号打开页面,底部有个返回的小横条,会遮挡页面底部。但是再刷新一下该组件页面,就不会遮挡了。其实就是第一次出现小白条时,页面高度获取会有问题。nn#####一、解决部分问题n查资料得知**小横条的出现是因为页面跳转产生历史纪录。**所以我想,使网站不存在历史纪录,没有返回,从而不出现小横条。那么可以使用location.r...
微信公众号监听后退,关闭内置浏览器
原理:在页面中我们可以使用javascript window history,后退到前面页面,但是由于安全原因javascript不允许修改history里已有的url链接,但可以使用pushState方法往history里增加url链接,并且提供popstate事件监测从history栈里弹出url。既然有提供popstate事件监测,那么我们就可以进行监听。n具体实现代码如下:n$(funct...
在iOS10系统中微信中后退无法发起ajax请求的问题
在IOS10的系统中,在微信客户端中打开网页中的后退按钮,无法发送ajax请求
iOS微信浏览器回退不刷新(监听浏览器回退事件)
iOS在微信浏览器回退是不重新加载页面的,有些时候是需要重新加载的,所以需要监听回退事件
解决动态生成的网页在微信浏览器中每次返回都会重新生成的问题
解决动态网页在微信浏览器中每次返回都会重新加载的问题前言假设我们我们有一个搜索结果列表页面,其内容为我们通过 AJAX 从后端动态获取的。搜索页面中的每一个条目是一个超链接,我们可以点击超链接去请求另一个网页查看条目详情。这是一种很常见的情况。可是在微信浏览器,我们会遇到这样一个问题:当我们想从条目详情返回条目列表页面时,微信浏览器会重新刷新条目列表页面,我们会找不到刚才浏览的位置,又要重新滚动,上
苹果手机用微信内置浏览器访问页面,如果出现微信底部工具栏遮挡页面的情况
阿百:n苹果手机用微信内置浏览器访问页面,如果出现底部工具栏遮挡页面的情况,可以用这串代码解决nnpushHistory();nfunction pushHistory() {n var state1 = {n title: "title",n url: "#"n };n window.history.pushState(state1, "title", "#");n}
vue ios系统 微信浏览器tab切换的时候点击两次
首页rn    rn    rn        rn        购物车rn    rn    rn        rn        个人中心rn    rnrnrnrnrnrnrnrn类似于这样结构的,点击的时候,会发现,点击图片两次才有效果,img标签外必须在嵌套一个div才可以,不然点击一次没有效果
微信开发常用技巧(3)-微信ios返回为静态返回,防止微信做缓存
两个问题:微信ios返回为静态返回,防止微信做缓存这几天在做微信开发遇到一些问题,后续应该还会有博客发出,希望可以帮助大家1.微信ios返回为静态返回的问题微信ios的静态返回操作有:点击微信上边的返回按钮,按住屏幕→滑动操作 n网上有很多说可以用window.addEventListener监听popstate我去,我就想问大哥,你是用的脑测蛮?能不能行心里没有一点B数?本人亲测不行! n真正可用
vue 中解决IOS端微信内置浏览器底部前进后退的bar
对于急性子先讲一下解决方案nnnthis.$router.replace('/path')nn这样写完。你就会发现跳转后底部不会出现那个该死的白条了 // 后面讲一下原理nn讲一下。微信为什么会出现这样的问题nn微信内置浏览器自己会监听他会产生历史记录。一开始。我的想法就是隐藏这个东西。各种样式写了太麻烦。nn后来想了想原理。是那么回事。就转变了一下思路。我们跳转时不保存历史记录就好了嘛。nn也算...
ios(safar/微信)返回不执行js
问题:苹果手机返回上一页不执行jsn需要做的事:n1.添加头部信息:设置不缓存n<meta HTTP-EQUIV="pragma" CONTENT="no-cache"> n<meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> n<meta HTTP-EQUIV="exp...
微信浏览器中隐藏 工具栏 后退前进刷新按钮等
在微信公众平台 开发者模式的情况下,自定义的菜单跳转到自己的Web页,通过微信内置的浏览器来解析页面rnrn但是通常情况下,浏览器的工具栏 上下占用了屏幕不少的位置rnrnrn一直想干掉rnrnrnrn今天看到如下代码rnrndocument.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {rn Weixin...
微信iOS 6.6.7版,这几个细微功能你未必发现了
1、浮窗 n用户在浏览第三方网页或文章内容的时候,可以随时缩小为浮窗方便用户再次浏览网页内容;缩小内容一共有两种方式,第一种是通过右上角的三个点 > 浮窗 第二种是在网页页面长按屏幕左边边缘往右拉即出现浮窗功能,取消浮窗的两种方式也类似上面的说法。nnnn2、内置浏览器 n浏览网页的时候下方出现 前进或后退 的快捷键 nnn3、语音输入 n语音输入支持 “普通话”、“粤语”、“英语”,旧版本...
解决微信返回时ajax重新载入的问题
稍微有点复杂,先说原理。rn给当页设置一个可识别的值,比如list页面,给个页面值“list”rn如下:rnvar spage     = "list";rn然后在页面中写入JavaScript sessionrnrnrnfunction fallback(){rn//把内容写入ssionrnsessionStorage.setItem('c_rout',true);rnsessionStorag
document.referrer 移动端返回上一页是刚需好吗?好的
n n n 日常PC端开发,返回上一页大家尝会使用 history.go(-1) 或者 history.back() , 就可以解决问题。n下面是日常返回上一页的方法:nhistory.go(-1) 后退nhistory.reload() 刷新nhistory.back() 后退+刷新nn原生js有一个方法可以获取前一页面的URL地址 document.referre...
@media、orientationchange事件、监测微信移动端横竖屏
前段时间接手一个别人的移动端项目,因为没有做横屏样式也没有提示用户关掉手机横屏,每当用户手机开启横屏模式时,会造成页面样式的混乱。方法一:利用CSS3 @media 媒体检测横竖屏orientation:portrait 竖屏orientation:landscape 横屏.errSreen指横屏时展示的提示页面.FullScreenPPTWrap指正常显示的内容基本原理:通过页面可视区宽高比例判...
popstate 监听app、浏览器的返回
在实际开发中,遇到需要在当前web页面监听app、浏览器返回的情况,进过一顿搜索后,终于找到一种比较靠谱的方式!nn下面话不多说,直接上代码:nnn<!DOCTYPE html>n<html>n<head>n <meta charset="utf-8">n <meta name="viewport" content="initial-
微信开发 IOS 返回键问题
微信通过连接进入页面,IOS下方会有返回按钮,点击返回按钮进入空白页,没有进行跳转,(Android是会进入连接地址)n如下图:n解决方案:n在跳转路径后面加上:n#wechat_redirectn例如:http://www.baidu.com#wechat_redirectnn...
IOS微信浏览器兼容问题汇总
1、IphoneX底部横线遮挡导航的问题nn判断设备是否是IphoneX,如果是,则增加底部导航20pxnnnfunction isIPhoneX(fn) {n var u = navigator.userAgent;n var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端n if (isIOS) {n ...
Vue项目中微信浏览器页面刷新问题
运行在微信浏览器中的Vue项目,当需要用户主动对页面进行刷新时,会遇到如下问题:nn微信不支持location.reload()方法,在微信浏览器中会失效nVue中的路由跳转是类似于ajax局部刷新,因此使用location.href=‘xxx+时间戳’ 这种方法时,页面不会重载nVue自带的this.$router.go(0)无效nhistory.go(0)无效nn通过后来的研究和学习,找到了一...
ios的微信浏览器输入框失去焦点后页面不能回弹
问题:注册页面,输入完手机号和注册密码,点击获取验证码,图片验证码弹窗弹出,一切进行的都很完美。然而在ios微信浏览器里面,无论点击哪里,弹出层毫无响应。rn开始排查问题:rnrnrn首先排除不是z-index导致元素点不到,进而无法触发点击事件。rnrnrn因为使用vue框架,所以给click事件加上一个native修饰符,然而仍然毫无响应。rnrnrn然后再排除不是因为css导致无法触发点击事件。rnrnrn直到滑一下...
微信内置浏览器返回键禁用
n n n 我在项目上的需求:点击图片出现的遮罩层,不仅希望可以点击遮罩层本身关闭,还需要点击安卓的物理返回键时可以关闭,这时候就出现了一个问题,微信内置的浏览器会认为返回键需要返回上一个页面,而我不希望如此。如果有使用微信sdk的朋友,可能会用wx.previewImage()方法来解决,这是最好的做法,但我在项目上并没有调用微信的sdk,因此需要单独处理安卓的物理...
popstata或onpageshow解决微信浏览器点击返回按钮时读取缓存问题
在微信浏览器中,从一个html跳到另外一个html页面后,点击浏览器自带的历史返回按钮,或者在第二个页面中调用history.back()等返回上一页方法,在安卓中直接会返回上一页(相当于重新加载上一页所有内容和逻辑,js会重新在执行一遍),但是在苹果端中,返回到上一页是,浏览器会读取缓存中的页面内容(回到上一页,会保持跳转时的状态,包括刚才浏览的位置,但是js不会在重新执行,因为是直接读取缓存中的
微信 history.back 时候的 缓存问题处理, 最近搞得我很头疼
最近在写微信的项目, 遇到一个很坑爹的问题, 为了更好的用户体验,我希望在项目中nn点击返回按键的时候能返回到 某一个指定的页面n返回某些页面的时候页面不缓存nnjsp 页面缓存nsrc 请求缓存najax 请求缓存nnnn主要操作的 api 有:nnpopstate,pushstate , history.back()npageshow, pagehidennn经过测试, 在 pc 端(模拟器)...
ios系统在微信端中页面禁止分享失效问题
苹果系统分享问题,页面重定向,返回分享失效,在js中引入下面代码即可。nn解决的代码:nn $(function () {nn var isPageHide = false;nn window.addEventListener('pageshow', function () {nn if (isPageHide) {nn window.location.reload();nn...
微信公众号开发,ios系统自带返回按钮,不刷新页面
微信公众号开发时,在IOS系统下点击返回按钮,发现返回后的页面是没有经过刷新的,虽然这样是有好处,不用再重新请求页面数据,但是很多时候我们是需要重新去请求页面数据的。rn首先我们需要监听手机的系统,然后在监听返回事件,当用户点击返回按钮后,将页面进行强制刷新,代码如下rnrnvar ua = navigator.userAgent;n if (ua.indexOf('iPhone') > -
ios点击微信公众账号返回按钮时,一个ajax报error的解决过程及总结(ios物理返回及ajax设置)
1.报错的函数:rn        $.ajax({rntype: "POST",rndata:{"requestParams":JSON.stringify(requestParams)},rnurl: getBasePath()+"/rest/userInfo/saveGjzLoginLogList",rndataType : "json",rncache: false,rnerror: fu
IOS下的微信H5页面的底部前进后退横栏的适配问题
Question:最近做一个在微信和支付宝内置浏览器中运行的移动web界面,前几个月ios微信更新之后,微信将后退的按钮移至了底部横栏,遮挡住了原先底部的操作按钮。由于之前的页面设计是整屏显示禁止触摸滚动效果的,就想着是不是可以隐藏微信内置的底部横栏。nnAnswer:nn1. 经过查资料,很多人说可以调用Weixin为H5应用提供开放原生能力的JS接口来隐藏/显示底部的状态栏。代码如下:nnnd...
Vue页面在苹果设备中微信(X5)浏览器title不改变的解决方法
在使用vue写移动端页面时,发现iPhone手机中的X5内核浏览器不会改变title,原因是对于SPA这类单页面应用,路由的变化并不会触发页面更新document.title = to.meta.title,所以需要我们自己创建一个隐藏的iframe来实现触发。nn以下是解决方案的实现代码: nmain.js文件nnnnrouter.beforeEach((to, from, next) =&gt...
用cookie解决新版微信中H5页面底部白条问题
背景        5月23日微信更新6.6.7版本,新加的文章缩小浮窗功能确实很赞。不过,有一处更新颇使H5开发者感到困扰,就是在iPhone上H5页面最底部多了一个白色的前进后退控制栏,即下图底部的那个白条,        分析        在微信里只要发生页面跳转,这个控制浏览器前进后退的白色条就会出现。        如果进入H5首页每次都要微信授权来获取用户信息,那这个白条将每次都会出...
内置浏览器返回键重定向问题解析
1、目前android端物理硬件返回键与左上角返回键处理基本一致,都是调用webview中的goback方法。rn      好处:可以满足大部分的网页后退与关闭。rn      不足之处:个别网页会因为重定向问题无法返回之前的页面rn                        解决方案:不是必需重定向的页面,去掉重定向。如果是必需要重定向的页面,客户端需要自己维护一个历史栈,同时需要前端通过
vue-微信浏览器 返回到上次滚动位置
n在router.js (路由页面) n n2.在 需要页面 v-if=”$route.meta.keepAlive” n例如:<div class="member_content" v-if="$route.meta.keepAlive"> n<router-view v-if="$route.meta.keepAlive"/>n...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 微信浏览器网页开发教程 微信浏览器h5开发教程