1. 简介
使用HTML, CSS & JS进行移动App开发
多平台共用一套代码
免费开源
2. cordova实现沉浸式状态栏
- 安装插件
cordova plugin add cordova-plugin-statusbar
- 安装完插件之后,在cordova工程的
\platforms\android\app\src\main\java\org\apache\cordova\statusbar\StatusBar.java
文件里面进行以下配置
// 实现沉浸式状态栏效果 新增代码start
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
window.setStatusBarColor(Color.TRANSPARENT);
window.setNavigationBarColor(Color.TRANSPARENT);
} else if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)) {
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
// 新增代码end
window.clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
// Read 'StatusBarBackgroundColor' from config.xml, default is #000000.
// 注掉默认的设置背景色的方法
// setStatusBarBackgroundColor(preferences.getString("StatusBarBackgroundColor", "#000000"));
- StatusBarOverlaysWebView它决定了状态栏是否覆盖webview,值为布尔类型,为true时覆盖,具体表现就是和视图重叠,为false时不覆盖,默认是true。
- StatusBarStyle它决定了状态栏的样式,可选值为default,lightcontent, blacktranslucent, blackopaque,值为default时,具体表现为状态栏字体颜色为黑色,而值为lightcontent、blacktranslucent、blackopaque,具体表现一致,状态栏字体颜色为白色。
- 注意:这里不需要配置StatusBarBackgroundColor,因为不设置值的时候,状态栏的背景颜色是透明的;目前自测xiaomi Note3不支持设置暗色状态栏字体颜色
3. cordova 防止屏幕旋转
在根目录下的config.xml
中添加如下内容
<!-- 控制手机app横竖屏幕转换portrait纵向 landscape 横向 default 默认转屏 -->
<preference name="orientation" value="portrait" />
4. android 9 http配置
- 在
\platforms\android\app\src\main\res\xml
文件夹中新建文件network_security_config.xml
粘贴一下内容
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
- 在
\platforms\android\app\src\main
找到AndroidManifest.xml
在<application
标签后添加一下代码
android:networkSecurityConfig="@xml/network_security_config"
eg:
<application
android:hardwareAccelerated="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:networkSecurityConfig="@xml/network_security_config"
android:supportsRtl="true">