设置安卓APP全屏运行且不能退回桌面
我们在做特定设备如自动取餐柜等需要安卓大屏的应用场景,安卓大屏应该运行我们的APP全屏运行,且不允许用户返回桌面,那么应该怎样设置呢?一下是方法 要使安卓应用程序全屏运行且不能返回桌面,您可以按照以下步骤进行操作:
1在您的Android应用程序的代码中,使用以下语句启用全屏模式:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
这将使应用程序全屏运行,隐藏状态栏和导航栏。 如果使用uniapp该如何设置APP全屏呢,方法如下: 首先全屏并非状态栏透明或变色,而是没有状态栏,也就是看不见电量、信号那条了。 全屏常见于横屏游戏,一般场景应该使用状态栏变色或状态栏透明。 如果想要全屏模式,在应用的manifest.json文件中添加“fullscreen”节点: Boolea值类型,true表示全屏,false表示非全屏,默认值为false。
App云端打包支持全屏操作方式: 双击应用的manifest.json文件,切换到“代码视图”,在根节点下添加fullscreen节点:**
Ctrl+S保存,并提交App云端打包
在应用中可调用5+ API动态改变应用是否全屏显示的状态
function fullscreen(){
// 设置应用全屏显示!
plus.navigator.setFullscreen(true);
}
function unfullscreen(){
// 设置应用非全屏显示!
plus.navigator.setFullscreen(false);
}
function isfullscreen(){
// 查询应用当前是否全屏显示!
console.log( "是否全屏:"+(plus.navigator.isFullscreen()?"是":"否") );
}
2接下来,您需要阻止用户通过按下“返回”按钮返回到桌面。为此,您可以重写Android应用程序的onBackPressed()方法,并在其中添加以下代码:
@Override
public void onBackPressed() {
// Do nothing
}
这将阻止用户通过按下“返回”按钮返回到桌面。如果您还想防止用户通过多任务窗口切换到其他应用程序,请使用以下代码:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (!hasFocus) {
Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
sendBroadcast(closeDialog);
}
}
这将在用户尝试切换到其他应用程序时关闭系统对话框,从而防止他们返回到桌面。
请注意,这种方法可能会违反Android的用户体验准则,并可能对用户造成困扰。此外,这种方法可能无法在所有设备上运行。因此,您应该在使用此方法之前仔细考虑其影响。
如果是uniapp如何设置拒绝返回呢,在页面的onBackPress生命周期使用如下代码
onBackPress() {
if(this.showMask) {
this.showMask = false;
return true;
}else{
uni.showModal({
title: '提示',
content: '是否退出uni-app?',
success: function(res) {
if (res.confirm) {
// 退出当前应用,改方法只在App中生效
plus.runtime.quit();
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
return true
}
},
文档信息
版权声明:可自由转载(请注明转载出处)-非商用-非衍生
发表时间:2023年3月21日 11:56