// App.vue页面
onShow: function() {
console.log('App page on Show');
this.isBack = false
this.isUseApi = false
},
onHide: function() {
console.log('App page on Hide');
this.isBack = true
},
// 图片预览页面
<image
class=""
:src="curImg"
:style="imageStyles"
@tap="showPreview(curImg)">
showPreview(*url*) {
uni.previewImage({
urls: [*url*]
})
}
// 选择图片页面
uni.chooseImage({
count: 1,
sizeType: ['original', 'compressed'],
sourceType: ['album', 'camera'],
success: (*r*) => {}
})
5***@qq.com (作者)
不好意思,有个地方没有说全,就是按你们文档说的,App.vue文件里对应的onShow(当 uni-app 启动,或从后台进入前台显示)、onHide(当 uni-app 从前台进入后台),这里指的是应用切换到后台挂着,和从后台到打开应用(前台),这么理解没有错吧?那调用其它原生的API也会触发就和文档说的不一致啊,这也导致了一些消息推送的业务bug,类似微信一样的后台G着和应用进程杀死都要收到系统消息弹窗,我在App.vue文件监听了onShow和onHide这就有问题
2022-07-05 17:55
5***@qq.com (作者)
App.vue文件,onShow就不接收系统弹窗消息,onHide弹系统消息,但是uni.previewImage、uni.chooseImage触发了App.vue文件里的onShow和onHide事件,就导致图片预览和选择照片页面会有系统弹窗消息
2022-07-05 17:58
DCloud_UNI_WZF
回复 5***@qq.com: 目前如此设计是为了和微信小程序保持一致,目前看只能根据业务场景做逻辑判断,比如利用全局状态标记
2022-07-05 18:31
1***@qq.com
回复 5***@qq.com: 你是咋解决的
2024-03-16 11:13
1***@qq.com
回复 DCloud_UNI_WZF: 搞不懂挺无语的,判断?如何判断?就算我再onhide拦截previewimage触发的事件,比如在previewimage的页面中这时候用户使APP进入后台,根本就无法知道app的状态,能不能加个app平台专属的隐藏显示事件
2024-03-16 11:18
吾逍遥
回复 DCloud_UNI_WZF: 这个app.vue中onHide和onShow与微信小程序保持一致可以理解 ,但在APP端应该考虑下前台后台情况,现在想APP切换到后台时调用的方法都无法执行,只能等待切换到前台时先执行onHide中代码再执行onShow代码,这个onHide生命周期就没什么意义了!!!
2024-06-24 10:27