复现方式:安卓多次使用物理返回键或右滑退出应用后, 再次进入有很大机率显示白屏。但是手动杀进程的方式不会出现白屏和后台驻留的方式也不会出现白屏
解决思路:利用后台驻留的方式进行假退出应用,把应用隐藏至后台,这样的话APP就会在后台运行,再次进入应用,就不会白屏
下图白屏效果
视频
uniapp物理键/右滑多次退出应用,再次进入显示白屏
1,物理键返回主要代码
// #ifdef APP-PLUSif (plus.os.name.toLowerCase() === 'android') {plus.runtime.quit();} else {const threadClass = plus.ios.importClass("NSThread");const mainThread = plus.ios.invoke(threadClass, "mainThread");plus.ios.invoke(mainThread, "exit");}// #endif
2,重写quit方法,此代码需要放到main.js中
// #ifdef APP-PLUS
const main = plus.android.runtimeMainActivity();
//为了防止快速点按返回键导致程序退出重写quit方法改为隐藏至后台
plus.runtime.quit = function() {main.moveTaskToBack(false);
};
//重写toast方法如果内容为 ‘再次返回退出应用’ 就隐藏应用,其他正常toast
plus.nativeUI.toast = (function(str) {if (str == '再次返回退出应用') {plus.runtime.quit();} else {uni.showToast({title: '再次返回退出应用',icon: 'none'})}
});
// #endif