uni-app app端webview跳转企业微信客服无法正常返回 app直接关闭
uni-app app端webview跳转企业微信客服无法正常返回 app直接关闭
| 类别 | 信息 |
|---|---|
| 产品分类 | uniapp/App |
| PC开发环境 | Mac |
| PC版本号 | 14.0 |
| HBuilderX | 正式 |
| HBuilderX版本 | 4.13 |
| 手机系统 | Android |
| 手机版本号 | Android 14 |
| 手机厂商 | 小米 |
| 手机机型 | 小米k50 |
| 页面类型 | vue |
| vue版本 | vue3 |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
示例代码:
<template>
<view class="content">
<web-view src="https://work.weixin.qq.com/kfid/kfcdd3f5de2dfa7d234"></web-view>
</view>
</template>
<script>
export default {
data() {
return {
title: 'Hello'
}
},
onLoad() {
},
methods: {
}
}
</script>
<style>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.logo {
height: 200rpx;
width: 200rpx;
margin-top: 200rpx;
margin-left: auto;
margin-right: auto;
margin-bottom: 50rpx;
}
.text-area {
display: flex;
justify-content: center;
}
.title {
font-size: 36rpx;
color: #8f8f94;
}
</style>
操作步骤:
运行到手机, 点击下面的客服选择客服2跳转微信;然后点击左上回退;或者左滑后退
预期结果:
点击返回app 页面可以浏览 操作
实际结果:
页面卡住 没有反应; 页面变成了微信的页面 没有返回app 页面 (左滑后退复现)
bug描述:
app端webveiw h5跳转微信; 不能正常返回 页面卡住
更多关于uni-app app端webview跳转企业微信客服无法正常返回 app直接关闭的实战教程也可以访问 https://www.itying.com/category-93-b0.html
看我文档把https://blog.csdn.net/baisheng77/article/details/138224885?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22138224885%22%2C%22source%22%3A%22baisheng77%22%7D
更多关于uni-app app端webview跳转企业微信客服无法正常返回 app直接关闭的实战教程也可以访问 https://www.itying.com/category-93-b0.html
本来就不能返回只能操作你h5的页面前进后退,如果需要在h5页面使用uni的跳转能力 得使用他webview的sdk去实现
sdk连接如下https://gitee.com/dcloud/uni-app/raw/dev/dist/uni.webview.1.5.4.js
相同页面在其它app 里面是好的
在 uni-app 中使用 webview 跳转到企业微信客服时,可能会出现无法正常返回并导致应用直接关闭的情况。这通常是因为企业微信客服的页面在 webview 中打开后,无法正确处理返回事件,或者 webview 的生命周期管理存在问题。
以下是一些可能的解决方案:
1. 使用 uni.navigateBack 或 uni.switchTab
在 webview 中打开企业微信客服页面后,尝试在返回时使用 uni.navigateBack 或 uni.switchTab 来返回到应用的主页面。
uni.navigateBack({
delta: 1
});
或者:
uni.switchTab({
url: '/pages/index/index'
});
2. 使用 uni.redirectTo
如果你不希望保留 webview 的历史记录,可以使用 uni.redirectTo 来跳转到新的页面,这样在返回时不会返回到 webview 页面。
uni.redirectTo({
url: '/pages/index/index'
});
3. 使用 uni.reLaunch
如果你希望关闭所有页面并重新打开应用的主页面,可以使用 uni.reLaunch。
uni.reLaunch({
url: '/pages/index/index'
});
4. 监听 webview 的返回事件
在 webview 中监听返回事件,并在事件触发时执行相应的操作。
uni.$on('webviewBack', function() {
uni.navigateBack({
delta: 1
});
});
5. 使用 uni-app 的 webview 组件
如果你使用的是 uni-app 的 webview 组件,可以尝试在 webview 的 onLoad 和 onUnload 生命周期中处理返回逻辑。
export default {
onLoad() {
// 页面加载时执行
},
onUnload() {
// 页面卸载时执行
uni.navigateBack({
delta: 1
});
}
}
6. 使用 uni-app 的 navigateTo 方法
在 webview 中打开企业微信客服页面时,使用 uni.navigateTo 方法,并在返回时使用 uni.navigateBack 方法。
uni.navigateTo({
url: '/pages/webview/webview?url=企业微信客服URL'
});
7. 使用 uni-app 的 webview 组件的 onNavigationBarButtonTap 方法
在 webview 页面中,监听导航栏按钮的点击事件,并在点击时执行返回操作。
export default {
onNavigationBarButtonTap(e) {
if (e.index === 0) {
uni.navigateBack({
delta: 1
});
}
}
}
8. 检查企业微信客服页面的返回逻辑
确保企业微信客服页面在返回时不会直接关闭应用。你可以尝试在企业微信客服页面中添加返回按钮,并在点击时执行 uni.navigateBack 操作。
<button @click="goBack">返回</button>
methods: {
goBack() {
uni.navigateBack({
delta: 1
});
}
}
9. 使用 uni-app 的 onBackPress 生命周期
在 webview 页面中,监听 onBackPress 生命周期,并在返回时执行相应的操作。
export default {
onBackPress() {
uni.navigateBack({
delta: 1
});
return true; // 阻止默认返回行为
}
}


