vue ios微信小程序跳转外链地址,返回页面执行自动后退或关闭页面

需求是页面外跳后,返回到项目首页,判断上一页有没有,有则后退一页,没有则关闭微信浏览器
处理方案:
创建refresh.js 文件 在index.html 文件中引入

home.vue

// 在首页先保存document.referrer 用于判断home.vue页面有无上一页
var referrer = document.referrer
localStorage.setItem('referrer' , referrer)

refresh.js文件

(function() {
	console.log(window.location.href)
	var href = window.location.href
	// 判断是否位首页
	if (href.indexOf('#/?') > -1) {
		// 页面加载是执行pageshow
		window.addEventListener('pageshow', function(event) {
			// event.persisted从缓存中获取时为true否则为false
			// window.performance.navigation.type == 2 网页通过“前进”或“后退”按钮加载,相当于常数		
			// performance.navigation.TYPE_BACK_FORWARD
			if (event.persisted || window.performance && window.performance.navigation.type == 2) {
				var ua = navigator.userAgent
				// 判断设备为 ios
				if (!!ua.match(/\(i[^;]+;(U;)? CPU.+Mac OS X/)) {
					var res = JSON.parse(localStorage.getItem('res'))
					var limit_prd = res.limit_prd.split(',')
					// 判断页面是否为首页
					if (limit_prd.length == 1) {
						// document.referrer 上一页的url
						var referrer = localStorage.getItem('referrer ')
						if (window.history.length != 1 && referrer != '') {
							// 如果有上一页 就返回上一页
							window.history.go(-1)
						} else {
							// 无上一页 关闭微信浏览器
							if (ua.match(/MicroMessenger/i) == 'micromessenger') {
								WeixinJSBridge.call('closeWindow') //IOS 
								//document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {
								//	WeixinJSBridge.invoke("closeWindow", {}, function(e) {})
								//})
								// 安卓
							}
						}
					}
				}
			}
		})
	}
})()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值