Cordova - 在发布时隐藏的StatusBar - Android

时间:2016-10-06 11:21:45

标签: android cordova cordova-plugins

我正在使用Cordova的StatusBarSplashScreen。我希望应用启动全屏,即状态栏在应用启动时隐藏。

deviceready回调中,我正在调用StatusBar.hide(),稍后我会使用StatusBar.show()再次显示状态栏。这很好。

问题是当出现启动图像时,状态栏可见。当deviceready回调被触发时,状态栏会隐藏。我甚至尝试在config.xml中将Fullscreen首选项设置为true,但结果是相同的。 Hide at Startup配置也仅与iOS相关。

有没有办法(仅使用Cordova)启动没有状态栏的应用程序并稍后显示?

注意:我正在使用SplashScreen插件显示启动画面

1 个答案:

答案 0 :(得分:0)

在以下位置找到MainActivity.java

  

\ platforms \ android \ app \ src \ main \ java \ com \ yourpackage \ name

将此添加到导入部分:

import android.view.WindowManager;

然后将此代码添加到最后一行:

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

        // enable Cordova apps to be started in the background
        Bundle extras = getIntent().getExtras();
        if (extras != null && extras.getBoolean("cdvStartInBackground", false)) {
            moveTaskToBack(true);
        }
        // [Hyuck] add this two line below    
        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

        // Set by <content src="index.html" /> in config.xml
        loadUrl(launchUrl);
    }

    // [Hyuck] onStart() is totally new.
    @Override
    public void onStart()
    {
        super.onStart();
        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
    }
}

这是Hyuck回答的摘录: Ionic 3 - Hide status bar during splash screen show

这是为我做的事。