本文介绍: 完成H5页内webview请求拦截。

前言

最近在项目中遇到一个需求,就是通过uni-appwebview嵌入H5页面,并且点击对应按钮,跳回uni-app中的下单页面,但是在H5页面本身就能进行其他页面跳转,所以需要阻止H5页面内的跳转(也就是H5自身的跳链操作


uni-app#webview文档地址:https://uniapp.dcloud.net.cn/component/web-view.html#web-view

具体实现IOS、Android均有效)

		//方法
		const currentWebview = this.$mp.page.$getAppWebview(); 
		//方法
		var pages = getCurrentPages();  
		var page = pages[pages.length - 1]; 
		var currentWebview = page.$getAppWebview(); 
	var wv = currentWebview.children()[0];
	// 拦截所有页面的跳转,可使用参数拦截  .jd.com
	wv.overrideUrlLoading({
	// “reject"  表示满足match属性定义提交时拦截url跳转触发callback回调,不满足match属性定义条件时不拦截url继续加载
    // “allow”  表示满足match属性定义条件时不拦截url继续加载,不满足match属性定义的条件时拦截url跳转触发callback回调
		mode: 'allow',
		match: '.*jd.com/.*'
	}, function(e) {
		try {
			// 根据自己业务需求处理链接上的参数,进行跳转
			var navURL =`/pages/index/order/order?id=${xxx}`;
			uni.navigateTo({
				url: navURL,
				animationType: 'pop-in'
			})
		} catch (e) {
			console.log(e)
			//TODO handle the exception
		}
		console.log('reject Url', url);
	})
	onReady() {
			var that = this;
			console.log('==========onReady  Start========')
			// #ifdef APP-PLUS
			var pages = getCurrentPages();
			var page = pages[pages.length - 1];
			var currentWebview = page.$getAppWebview();
			var url = currentWebview.children()[0].getURL();
			console.log("===URL===", url);

			var wv = currentWebview.children()[0];
			// 拦截所有页面的跳转,可使用参数拦截  .jd.com
			wv.overrideUrlLoading({
				mode: 'allow',
				match: '.*jd.com/.*'
			}, function(e) {
				try {
					// 根据自己业务需求处理链接上的参数,进行跳转
					var navURL =`/pages/index/order/order?id=${xxx}`;
					uni.navigateTo({
						url: navURL,
						animationType: 'pop-in'
					})
				} catch (e) {
					console.log(e)
					//TODO handle the exception
				}
				console.log('reject Url', url);
			})
			// #endif
			console.log('==========onReady  End========')
		},

以上根据自身业务需求进行,可以完成H5页内webview请求拦截。

原文地址:https://blog.csdn.net/qq_37190789/article/details/126524443

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_17699.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注