uni-app 嵌套h5 打包app 跳转外部链接怎么返回
时间: 2023-09-11 09:07:25 浏览: 108
在嵌套的 H5 页面中,可以使用 window.history.back() 方法返回上一页。如果需要在 App 中返回,则可以在 App.vue 中监听路由变化,当路由变化到嵌套的 H5 页面时,将返回按钮的点击事件改为调用 uni.navigateBack() 方法返回上一页。具体示例代码如下:
在 App.vue 中监听路由变化:
```javascript
onRouteChange (to) {
this.isH5Page = to.path.startsWith('/h5/') // 判断当前是否为嵌套的 H5 页面
},
```
在 H5 页面中使用 window.history.back() 方法返回上一页:
```javascript
goBack () {
window.history.back()
}
```
在 App 中使用 uni.navigateBack() 方法返回上一页:
```javascript
goBack () {
if (this.isH5Page) {
window.history.back() // 如果当前为 H5 页面,则调用 window.history.back() 方法返回上一页
} else {
uni.navigateBack() // 否则调用 uni.navigateBack() 方法返回上一页
}
}
```
相关问题
uni-app 嵌套h5 打包app物理返回跳转外部链接怎么返回
在uni-app中,可以使用uni.navigateBack()方法来实现物理返回跳转外部链接后返回的操作。具体操作如下:
1. 在外部链接页面中,可以通过以下方式设置返回按钮的监听事件:
```javascript
window.addEventListener('popstate', function () {
// 返回到uni-app页面
uni.navigateBack({
delta: 1
});
});
```
2. 在uni-app页面中,可以在onBackPress生命周期函数中判断是否需要返回外部链接页面,如下所示:
```javascript
onBackPress: function () {
if (this.isExternalLink) {
// 返回到外部链接页面
window.history.back();
return true;
} else {
// 返回到上一个uni-app页面
uni.navigateBack({
delta: 1
});
return true;
}
}
```
其中,isExternalLink是一个标识变量,用于判断当前页面是否是外部链接页面。如果是外部链接页面,则调用window.history.back()方法返回到外部链接页面;否则,调用uni.navigateBack()方法返回到上一个uni-app页面。
需要注意的是,如果在外部链接页面中使用了浏览器的前进或后退功能,也会触发popstate事件,所以需要在popstate事件的回调函数中添加判断条件,避免误操作导致程序异常。
uni-app打包app嵌套h5跳转外部链接无法返回
这可能是因为您的app嵌套的H5页面使用了浏览器中的window.history API进行页面跳转,而在uni-app中,uni.navigateTo和uni.redirectTo只能操作uni-app内部的页面栈,无法操作浏览器中的页面栈,因此无法返回到uni-app中的页面。
为了解决这个问题,您可以考虑使用uni.navigateTo和uni.redirectTo打开新的uni-app页面,而不是直接跳转到外部链接。另外,您也可以在外部链接中添加返回按钮,让用户通过点击按钮返回到uni-app页面。
阅读全文