Я делаю приложение для Android, и я хотел, чтобы оно было в режиме погружения, я сделал это с помощью плагина, но я не могу заставить работать погружение на устройстве Android с надрезом (черные полосы сверху и снизу). Как я могу использовать весь экран?
Итак, я читал много решений:
setTimeout(function(){
if (window.AndroidFullScreen) {
window.AndroidFullScreen.immersiveMode();
AndroidFullScreen.showUnderStatusBar();
AndroidFullScreen.showUnderSystemUI();
}, 2000);
(также мне нужно использовать тайм-аут для внесения изменений, и я не знаю, почему, во всяком случае, чтобы применить код при запуске приложения, я использую deviceready.
- Это позволило использовать полноэкранный режим в надрез. Я поместил это в файл javascript, используя плагин.
AndroidFullScreen.setSystemUiVisibility(
AndroidFullScreen.SYSTEM_UI_FLAG_LAYOUT_STABLE
| AndroidFullScreen.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| AndroidFullScreen.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| AndroidFullScreen.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| AndroidFullScreen.SYSTEM_UI_FLAG_FULLSCREEN
| AndroidFullScreen.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
, successFunction, errorFunction
);
Но проблема в том, что системный интерфейс не скрывается, и когда я перетаскиваю сверху, чтобы открыть меню уведомлений и скрывать его, пользовательский интерфейс, наконец, исчезает, но на экране снова появляются черные полосы, так что это похоже на старый immersiveMode () (также этот код снова находится в setTimeOut).
my config.xml:
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.adia.security" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<platform name="android">
<allow-intent href="market:*" />
<preference name="AndroidLaunchMode" value="singleInstance" />
<preference name="DisallowOverscroll" value="true" />
<preference name="KeepRunning" value="true" />
</platform>
<edit-file parent="/manifest/application" target="AndroidManifest.xml">
<meta-data android:name="android.max_aspect" android:value="2.1" />
<activity android:resizeableActivity="false" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
</edit-file>
<preference name="Fullscreen" value="true" />
<preference name="StatusBarOverlaysWebView" value="true" />
<plugin name="cordova-plugin-fullscreen" spec="1.2.0" />
<plugin name="cordova-plugin-splashscreen" spec="5.0.2" />
<engine name="android" spec="^7.1.4" />
</widget>
Итак, у меня есть это, когда я применяю immersiveMode () с плагином:

И это с другим кодом, пользовательский интерфейс не исчезает, и когда я открываю меню уведомлений и скрываю его, он снова возвращается к первому изображению.

Я хочу, чтобы это было так, но без отображения интерфейса.
Спасибо.