我正在使用Cordova的StatusBar和SplashScreen。我希望应用启动全屏,即状态栏在应用启动时隐藏。
在deviceready
回调中,我正在调用StatusBar.hide()
,稍后我会使用StatusBar.show()
再次显示状态栏。这很好。
问题是当出现启动图像时,状态栏可见。当deviceready
回调被触发时,状态栏会隐藏。我甚至尝试在config.xml中将Fullscreen首选项设置为true,但结果是相同的。 Hide at Startup配置也仅与iOS相关。
有没有办法(仅使用Cordova)启动没有状态栏的应用程序并稍后显示?
注意:我正在使用SplashScreen插件显示启动画面
答案 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
这是为我做的事。