给你的Cordova HybridApp添加Splash启动页面

本文详细介绍了如何在Cordova3及以上版本中使用Splash插件添加启动画面,包括添加插件、配置config.xml文件、修改启动图片及在设备初始化完成后隐藏Splash画面的全过程。特别适用于Ionic框架的应用。

现在最新的Cordova 3以上的版本支持启动画面了,是通过cordova插件实现的。

目前Splash插件支持android,ios,blackberry等多个平台。


添加插件等过程如下:

添加SplashScreen插件

在cordova项目目录运行:

cordova plugin add org.apache.cordova.splashscreen

这个命令从插件git库下载插件代码到在工程的plugins目录下


修改config.xml配置文件

    <preference name="SplashScreen" value="screen" /> <!-- 不带后缀png的文件名,默认是screen-->
    <preference name="SplashScreenDelay" value="3000" /> <!-- Splash显示时间,默认是3000ms-->
    <feature name="SplashScreen">
        <param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen" />
    </feature>


修改启动图片

可以看到启动图片的名字是screen.png,工程下有一些screen.png默认图片了,上面显示的是cordova logo,下面需要把这些图片换成你自己的启动画面,不需要支持的尺寸图片直接删掉就可以了。


在设备初始化完成后隐藏Splash画面

document.addEventListener("deviceready", onDeviceReady, false);  
function onDeviceReady() {  
  navigator.splashscreen.hide();  
}  

如果使用了ionic框架,直接在app.js 文件的  .run(['$ionicPlatform', function ($ionicPlatform) {   ... } 里面加上 
navigator.splashscreen.hide();

就可以了。


现在再运行你的App,应该可以看到启动画面了。


Cordova Android 13.0.0 中取消启动画面SplashScreen)的显示,需要结合 Cordova 的配置以及 Android 原生层面的设置。由于 Android 12(API 31)引入了官方的 SplashScreen API,并在 Android 13 中继续沿用,因此在 Cordova 项目中如果仍使用旧版本的插件或自定义实现,可能会导致双重启动画面的问题[^2]。以下是具体的取消方法: ### 1. 禁用 Cordova Splashscreen 插件 确保你已经安装了 `cordova-plugin-splashscreen` 插件,可以通过配置 `config.xml` 来禁用启动画面: ```xml <preference name="SplashScreen" value="none" /> <preference name="AutoHideSplashScreen" value="true" /> ``` 上述配置中,`SplashScreen` 设置为 `"none"` 表示不使用任何启动画面资源,`AutoHideSplashScreen` 控制是否自动隐藏启动画面[^4]。 ### 2. 修改 Android 原生配置 由于 Android 12 及以上版本默认启用系统级 SplashScreen(基于 `SplashScreen API`),即使你未主动使用,系统也可能显示默认的启动画面。为避免此现象,可以在 `AndroidManifest.xml` 中修改应用的主题设置: ```xml <activity android:name=".MainActivity" android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> ``` 同时,在 `res/values/styles.xml` 中定义一个不启用 SplashScreen 的主题: ```xml <style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:windowIsTranslucent">true</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowDisablePreview">true</item> <item name="android:windowSplashScreenAnimatedIcon">@null</item> <item name="android:windowSplashScreenBackground">@android:color/transparent</item> </style> ``` 上述配置通过将 `windowSplashScreenBackground` 设置为透明,并移除启动动画图标,实现隐藏系统级启动画面的效果[^3]。 ### 3. 使用 Cordova 插件控制启动画面 如果希望通过插件方式动态控制启动画面的显示与隐藏,可以使用以下 JavaScript 方法: ```javascript document.addEventListener("deviceready", function () { navigator.splashscreen.hide(); }, false); ``` 同时确保在 `config.xml` 中设置了 `AutoHideSplashScreen` 为 `false`,以便手动控制启动画面的隐藏[^4]。 ---
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

offbye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值