当前位置: 首页 > news >正文

uniapp嵌套webview,无法返回上一级?

uniapp嵌套webview,如何解决回退问题?

文章目录

    • uniapp嵌套webview,如何解决回退问题?
      • 遇到问题
      • 解决方式
        • 方式一
        • 方式二

场景:

  • 进入首页,自动跳转第三方应用

遇到问题

  • 在设备上运行时,无法回退上一级,直接退出应用了;
  • 预期:一级级的返回页面;

解决方式

个人想到临时解决方式,欢迎老铁们可以分享其他方式

  • 进入首页index,不要先加载 web-view
  • 新建页面,例webview.vue

方式一

例:安卓

index.vue

onLoad() {uni.navigateTo({url: '/pages/webview/webview'})
}

webview.vue

<template><view><web-view src="https://xxx"></web-view></view>
</template>

onUnload() {// #ifdef APP-PLUS// ios退出应用方式,下面有写plus.runtime.quit(); // 强制退出应用.Android// #endif
},
方式二

个人 推荐方式一,简单一些

  • 通过标识是否已加载webview页面,定义全局变量或本地存储标识都可以
  • 在 onShow 判断是否已加载 webview 页面,已加载 ,则执行退出应用,否则跳转页面

App.vue

globalData: {webShowed: false, // 标识
},

index.vue

const app = getApp()onShow() {this.handleLaunchJump();
}

handleLaunchJump() {let sysInfo = uni.getSystemInfoSync();// 这里我处理Android、 Ios,跳转及退出方式,根据个人所需if (!app.globalData.webShowed) {if (sysInfo.platform === 'ios') {uni.redirectTo({url: this.url // '/pages/webview/webview'})} else {uni.navigateTo({url: this.url})}} else {// #ifdef APP-PLUSif (sysInfo.platform === 'ios') {plus.ios.import('UIApplication').sharedApplication().performSelector('exit');} else {plus.runtime.quit();}// #endif}
}

webview.vue

<template><view><web-view src="https://xxx"></web-view></view>
</template>
onShow() {getApp().globalData.webShowed = true;
},

相关文章:

  • MySQL死锁场景与应对方案
  • 51单片机中断
  • java大数据hadoop2.9.2 Linux安装mariadb和hive
  • Baichuan2百川模型部署的bug汇总
  • OpenCV-Python(49):图像去噪
  • MySQL存储过程和触发器
  • Windows高级调试(学习笔记)-第二章-调试器介绍
  • 基于JavaWeb+SSM+Vue停车场微信小程序系统的设计和实现
  • ChatGLM vs ChatGPT
  • SPI 动态服务发现机制
  • Docker(八)高级网络配置
  • C语言:函数指针的使用
  • GPT应用开发:编写插件获取实时天气信息
  • (南京观海微电子)——COF介绍
  • 计算机服务器中了mallox勒索病毒怎么办,mallox勒索病毒解密数据恢复
  • flutter的key在widget list的作用以及必要性
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • Mysql数据库的条件查询语句
  • vuex 学习笔记 01
  • WePY 在小程序性能调优上做出的探究
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 爱情 北京女病人
  • 缓存与缓冲
  • 力扣(LeetCode)357
  • 赢得Docker挑战最佳实践
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • ​如何在iOS手机上查看应用日志
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #1015 : KMP算法
  • (1) caustics\
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (C语言)共用体union的用法举例
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (转)Android学习笔记 --- android任务栈和启动模式
  • .gitattributes 文件
  • .mysql secret在哪_MySQL如何使用索引
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .net core Swagger 过滤部分Api
  • .NET 常见的偏门问题
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .NET实现之(自动更新)
  • .pyc文件是什么?
  • .stream().map与.stream().flatMap的使用
  • [ Linux ] Linux信号概述 信号的产生
  • [.net 面向对象程序设计进阶] (19) 异步(Asynchronous) 使用异步创建快速响应和可伸缩性的应用程序...
  • [AIGC] 如何建立和优化你的工作流?
  • [ArcPy百科]第三节: Geometry信息中的空间参考解析
  • [Contest20180313]灵大会议
  • [DEBUG] spring boot-如何处理链接中的空格等特殊字符
  • [IE技巧] 使IE8以单进程的模式运行
  • [JavaScript]如何讓IE9, IE8, IE7, IE6關閉視窗時不彈出對話訊息
  • [LOJ#6259]「CodePlus 2017 12 月赛」白金元首与独舞
  • [Mvc]在ASP.NET MVC中使用Repeater
  • [MySQL FAQ]系列 -- 如何利用触发器实现账户权限审计
  • [NKCTF 2024]web解析