uni-app 安卓设备虚拟按键隐藏

发布于 1周前 作者 h691938207 来自 Uni-App

uni-app 安卓设备虚拟按键隐藏

无相关内容

2 回复

官方api有


uni-app 中隐藏安卓设备的虚拟按键(即导航栏),你可以通过修改 Android 原生代码或使用一些插件来实现。以下是直接在 manifest.json 中配置和通过自定义原生插件实现隐藏虚拟按键的两种方法。

方法一:通过 manifest.json 配置(适用于简单场景)

uni-app 支持在 manifest.json 中配置一些原生应用参数,但直接隐藏虚拟按键通常不在这些配置选项中。不过,你可以尝试设置全屏显示,这有时能间接隐藏虚拟按键。

{
  "mp-weixin": {},
  "app-plus": {
    "distribute": {
      "android": {
        "permissions": [],
        "fullscreen": true, // 设置为全屏
        "softInputMode": "adjustResize" // 调整输入法模式
      }
    }
  }
}

这种方法的效果依赖于设备和 Android 版本,不保证在所有设备上都能隐藏虚拟按键。

方法二:通过自定义原生插件

对于更复杂的需求,建议使用自定义原生插件来直接操作 Android 系统设置。以下是一个简单的原生插件示例,用于隐藏虚拟按键:

1. 创建原生插件

首先,在 native-plugins 目录下创建一个新的插件,比如 HideNavigationBar

2. 编写 Android 代码

在插件的 android 目录下,修改 MainActivity.java 或创建一个新的 Java 类来隐藏虚拟按键。

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // 隐藏虚拟按键
        Window window = getWindow();
        window.getDecorView().setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_FULLSCREEN
            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
        );

        setContentView(R.layout.activity_main);
    }
}

3. 调用插件

uni-app 中,通过 uni.requireNativePlugin 调用这个插件。

const hideNavBar = uni.requireNativePlugin('HideNavigationBar');

// 在页面加载时调用插件
onLoad() {
    hideNavBar.hideNavigationBar();
}

注意:这里的 hideNavigationBar 方法需要在插件中定义,并且插件需要正确打包和安装到项目中。

总结

直接通过 uni-app 的配置隐藏安卓虚拟按键可能有限制,更可靠的方法是使用自定义原生插件。上述代码示例提供了一个基本的框架,你可能需要根据具体需求进一步调整和完善。

回到顶部