uniapp web-view控制父页面跳转

本文介绍了如何在uniapp项目中嵌入一个已有的pc页面,并处理返回页面的问题。通过引入uniapp的web-view.js,监听'UniAppJSBridgeReady'事件,实现从H5到uniapp页面的跳转。同时,提供了前端和后端结合的判断方式,根据用户是否来自移动端来决定跳转行为。
摘要由CSDN通过智能技术生成

近期开发uniapp项目,有一功能,需要在h5嵌套一个已有的pc 页面,但是pc的页面已经写死了返回的页面,uniapp上web-view嵌套使用的话需要进行适配,对于不是很熟悉前端的xdm来说还是比较晕的,直接上代码:

<!-- uni 的 SDK,必须引用,路径换成你们自己的路径,我这使用的是thymeleaf,根据你们自己获取方式即可。 -->
<script type="text/javascript" th:src="@{/static/js/uniapp/uni-webview-1.5.4.js}"></script>
<script>
	var jumpToUniappFunc;
	document.addEventListener('UniAppJSBridgeReady', function() {
	   uni.getEnv(function(res) {
	       console.log('当前环境:' + JSON.stringify(res));
	   });
	   jumpToUniappFunc = ()=>{
	       uni.navigateTo({
	         url:'/pages/xxxx/instance/instance-list'
	       })
	   }
	});
</script>

uniapp的web-view.js自行去官网下载:
https://gitee.com/dcloud/uni-app/raw/dev/dist/uni.webview.1.5.4.js

然后使用JS判断是否来自H5或APP,是的话调用jumpToUniappFunc()进行跳转即可,isFromMobile是在后端通过request的User-Agent判断的,这里就不展示代码了。

// 是否来自移动端,true=是
var isFromMobile = [[${isFromMobile}]]

function toWaitReadList() {
    if(isFromMobile){
    	 // 移动端直接跳转
         jumpToUniappFunc()
         return
     }
     // pc跳转
     window.history.forward(1);
     window.location.href = `${adminPath}/xxxxx/xxxxx/list`
 }
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
uniappweb-view支付可以通过对支付宝h5收银台的回调跳转进行拦截来实现。首先,在webview中的onReady()事件中,可以使用uni.redirectTo()方法对支付宝的return_url地址进行拦截,并将其跳转app中的支付成功页面。具体的代码如下所示: ```javascript onReady() { // #ifdef APP-PLUS const currentWebview = this.$mp.page.$getAppWebview(); var wv = currentWebview.children()[0]; wv.overrideUrlLoading({mode: 'reject', match: '.*alipay\.com/.*'}, (e) => { //拦截支付宝的回调跳转 uni.redirectTo({ url: "/pages/public/payResult?ptype=alipay&orderid=xxx" }) }); // #endif } ``` 通过以上代码,可以实现当用户在webview中进行支付宝支付时,支付成功后会跳转app中的支付成功页面,而不是继续停留在webview中。另外,还需要在微信唤醒逻辑中对自己的webview页面进行配置,将redirect_url拼接上自己app的UrlSchemes,以确保支付回调的是app而非浏览器。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [webview内嵌uniappH5支付](https://blog.csdn.net/xj932956499/article/details/109696045)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值