使用 Cordova 制作 Android 应用程序全屏

问题描述 投票:0回答:3

我是 Cordova 的新手,正在尝试制作一个全屏显示的应用程序(隐藏 Android 底部的任务栏)。

我在网上查了一下,似乎有两种不同的技术....我尝试添加

<preference name="Fullscreen" value="true" /> to my config.xml

以便它读取

<?xml version='1.0' encoding='utf-8'?>
<widget id="io.cordova.hellocordova" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <preference name="loglevel" value="DEBUG" />
    <preference name="AndroidLaunchMode" value="singleTop" />
    <feature name="App">
        <param name="android-package" value="org.apache.cordova.App" />
    </feature>
    <name>HelloCordova</name>
    <description>
        A sample Apache Cordova application that responds to the deviceready event.
    </description>
    <author email="[email protected]" href="http://cordova.io">
        Apache Cordova Team
    </author>
    <content src="index.html" />
    <access origin="*" />
    <preference name="Fullscreen" value="true" />
    <preference name="WebViewBounce" value="true" />
    <preference name="Orientation" value="landscape" />
    <preference name="HideKeyboardFormAccessoryBar" value="true" />
</widget>

状态栏仍然保留在底部(尽管应用程序确实修复了横向)。我还尝试了其他建议,其中涉及向 hellocordova.java 添加行。这会导入 android.view.WindowManager;然后在加载index.html后添加行:

(WindowManager.LayoutParams.FLAG_FULLSCREEN,                   WindowManager.LayoutParams.FLAG_FULLSCREEN WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);

此方法阻止应用程序使用 cordova build android 进行编译。

我可以在哪里寻找的任何提示。

我使用的是Android 4.1.1

android cordova
3个回答
10
投票

不幸的是,该插件不适合我,所以我通过以下步骤进行管理:

在您的

config.xml
文件中添加全屏首选项:

<preference name="Fullscreen" value="true" />

AndroidManifest.xml
中找到
platforms/android/
并添加全屏主题

<manifest ...>
    <application ...>
        <activity ... android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">

最后,这是更困难的一步,使用沉浸式全屏模式。我让它工作的唯一方法是直接扩展

CordovaApp.java
 中的 
plattforms/android/src/com/example/hello/

文件
...
import android.view.View;

//Cordova onCreate function....
//public void onCreate()
//...    

//this is the important thing:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
  super.onWindowFocusChanged(hasFocus);
  View decorView = getWindow().getDecorView();
  if(hasFocus) {
        decorView.setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_FULLSCREEN
                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
    }
}

我不是 Java 开发人员(jet),所以我无法详细解释发生了什么,但它似乎有效。请记住,Cordova 创建了

platforms/android
文件夹,因此它可能会被某些操作覆盖。


8
投票

Android 上的底部栏称为导航栏,您正在寻找的模式称为沉浸模式。这些术语可能会对您将来的网络搜索有所帮助。 尝试使用这个插件 https://github.com/mesmotronic/cordova-fullscreen-plugin


0
投票

从 Android 5.0.0 开始,您不再需要 cordova-fullscreen-plugin!仅将

<preference name="Fullscreen" value="true" />
添加到
config.xml
效果很好!

© www.soinside.com 2019 - 2024. All rights reserved.