我有一个装有 Ionic 3 的应用程序,在您的 app.component.ts 中,我使用 Statusbar ionic 插件来隐藏它,但是,这只有在平台就绪被触发后才会发生。
如何在启动画面期间隐藏它?我试过了:
– 在启动画面期间不隐藏,只有在隐藏之后 – 在启动画面期间不更改背景颜色
解决 方案?
Android
似乎没有优雅的方法可以在应用程序启动时隐藏状态栏。 但是有一种方法可以做到这一点。
- 查找主活动.java(也许
platforms/android/src/io/ionic/starter
( - 添加以下代码
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);
}
}
IOS
我只能测试安卓设备。所以,我只是留下可能解决您问题的链接
在 MainActivity 页面中添加代码后 我运行命令来构建apk 我收到此错误
任务:app:compileDebugJavaWithJavac FAILED E:\Ionic\AIOU_Solutions1\platforms\android\app\src\main\java\io\ionic\starter\MainActivity.java:38:错误:包窗口管理器不存在 getWindow((.clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN(;
我在基于 Cordova 的应用程序上遇到了同样的问题。在找到此解决方案之前,我不知道如何在 Splashcreen 期间隐藏状态栏(尝试了很多事情(。
在飞溅过程中隐藏状态栏
选项 1 - 自行编辑文件
-
查找文件平台/android/app/src/main/res/values/strings.xml
-
通过编辑 XML 添加具有特定规则的自定义主题
<?xml version='1.0' encoding='utf-8'?> <resources> <string name="app_name">My App Name</string> <string name="launcher_name">@string/app_name</string> <string name="activity_name">@string/launcher_name</string> <!-- Add your custom theme rules --> <style name="MyCustomTheme" parent="@style/Theme.AppCompat.NoActionBar"> <item name="android:windowActionBar">false</item> <item name="android:windowNoTitle">true</item> </style> </resources>
-
查找文件平台/android/app/src/main/AndroidManifest.xml
-
找到
<activity>
标记并添加对"MyCustomTheme"
的引用<activity android:theme="@style/MyCustomTheme" ...etc...
选项 2 - 从科尔多瓦配置中编辑文件.xml
-
您可能更愿意直接从
config.xml
文件中管理此自定义主题,而无需自己编辑AndroidManifest.xml
和strings.xml
。如果cordova platform remove android
和cordova platform add android
将删除您的更改,这会很有帮助。 -
在配置中添加此内容.xml
<platform name="android"> <!-- Edit the activity tag fo your AndroidManifest.xml --> <edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/application/activity"> <activity android:theme="@style/MyCustomTheme"/> </edit-config> <!-- Edit the strings.xml file --> <edit-config file="strings.xml" mode="add" target="/resources"> <style name="MyCustomTheme" parent="@style/Theme.AppCompat.NoActionBar"> <item name="android:windowActionBar">false</item> <item name="android:windowNoTitle">true</item> </style> </edit-config> </platform>
-
最后一步,请记住,为了能够使用
config.xml
文件中<edit-config>
标签,您需要将此xmlns
属性添加到<widget>
标签中。<?xml version='1.0' encoding='utf-8'?> <widget xmlns:android="http://schemas.android.com/apk/res/android" ...etc...
如果你有更好的选择,我很想听听!