Подтвердить что ты не робот

Всплывающие экраны Apache Cordova не отображаются в Android

Я запускаю Apache Cordova 3.6.3-0.2.13. И я пытаюсь заставить экраны заставки работать. Я выполнил документацию по http://cordova.apache.org/docs/en/3.6.0/config_ref_images.md.html#Icons%20and%20Splash%20Screens. И значки работают, но нет успеха для экранов заставки. Мы также используем Ionic framework (версия 1.2.8) поверх Кордовы.

Что я сделал:

Добавлены значки и заставки для config.xml из корня проекта:

<preference name="SplashScreen" value="splash"/>
<preference name="SplashScreenDelay" value="10000"/>
<platform name="android">
  <icon src="icons/icon.png"/>

  <!-- you can use any density that exists in the Android project -->
  <splash src="icons/android-splash-land-hdpi.png" density="land-hdpi"/>
  <splash src="icons/android-splash-land-ldpi.png" density="land-ldpi"/>
  <splash src="icons/android-splash-land-mdpi.png" density="land-mdpi"/>
  <splash src="icons/android-splash-land-xhdpi.png" density="land-xhdpi"/>

  <splash src="icons/android-splash-port-hdpi.png" density="port-hdpi"/>
  <splash src="icons/android-splash-port-ldpi.png" density="port-ldpi"/>
  <splash src="icons/android-splash-port-mdpi.png" density="port-mdpi"/>
  <splash src="icons/android-splash-port-xhdpi.png" density="port-xhdpi"/>
</platform>

Конечно, существует каталог icons, а также файлы на месте. Когда я создаю проект с ionic run android или cordova run android. Процесс сборки также создает значки и заставки в каталоге platforms/android/res/drawable!

Также обновлен файл конфигурации, расположенный в platforms/android/res/xml/config.xml, и элементы <preference> и <icon> и <splash> находятся на месте.

Я также пробовал с плагином org.apache.cordova.splashscreen, а также без успеха. Я добавил плагин с ionic plugin add org.apache.cordova.splashscreen, а также добавил onDeviceReady код navigator.splashscreen.show();. Но это тоже ничего не показывает.

Что мне здесь не хватает?

4b9b3361

Ответ 2

Мне пришлось установить плагин с заставкой, чтобы он работал

cordova plugin add cordova-plugin-splashscreen

а также добавление

<preference name="SplashScreen" value="screen" />

<preference name="SplashScreenDelay" value="2000" />

Ответ 3

Для новых пользователей и тех, кто все еще сталкивается с этой проблемой

1) Добавьте предпочтение экрана Splash в config.xml

<preference
    name="SplashScreen"
    value="screen" />
<preference
    name="AutoHideSplashScreen"
    value="true" />
<preference
    name="SplashScreenDelay"
    value="5000" />

<feature name="SplashScreen" >
    <param
        name="android-package"
        value="org.apache.cordova.splashscreen.SplashScreen" />

    <param
        name="onload"
        value="true" />
</feature>

2) Объявите свои заставки в config.xml

    <!-- you can use any density that exists in the Android project -->
    <splash
        density="land-hdpi"
        src="res/drawable-land-hdpi/splash.png" />
    <splash
        density="land-ldpi"
        src="res/drawable-land-ldpi/splash.png" />
    <splash
        density="land-mdpi"
        src="res/drawable-land-mdpi/splash.png" />
    <splash
        density="land-xhdpi"
        src="res/drawable-land-xhdpi/splash.png" />
    <splash
        density="port-hdpi"
        src="res/drawable-hdpi/splash.png" />
    <splash
        density="port-ldpi"
        src="res/drawable-ldpi/splash.png" />
    <splash
        density="port-mdpi"
        src="res/drawable-mdpi/splash.png" />
    <splash
        density="port-xhdpi"
        src="res/drawable-xhdpi/splash.png" />
</platform>

3) Наконец добавьте этот класс в свою структуру проекта Android в пакете org.apache.cordova.splashscreen

или

установите его как плагин Кордовы.

Ответ 4

У меня была аналогичная проблема в android, я сразу же включил экран Splash в res/drawable-hdpi и получил следующую ошибку во время сборки cordova.

res/drawable-hdpi-v4/DocBackground.png: Invalid file name: must contain only [a-z0-9_.]

Когда я де-капитализировал имя файла, в ~project/icons, corova build скопировал их в папку res/drawable и заработал экран заставки.

Ответ 5

После тщательного следования инструкциям на экране заставки PhoneGap CLI мой Android-экран заставки по-прежнему не отображался. Затем я просмотрел build.gradle под платформами android и заметил, что изменения, внесенные в блок defaultConfig, вызывают изменения в AndroidManifest.xml, что в конечном итоге помешало работать с заставкой. Ниже находится блок defaultConfig, который я использовал:

defaultConfig {
    applicationId "com.leadingedje"
    minSdkVersion 17
    targetSdkVersion 21
    versionCode getAppVersionCode()
    versionName getAppVersionName()
}

Когда я удалил этот блок из build.gradle, заставка снова заработала.

Ответ 6

Интеграция с Splashscreen:

Android

  • Добавьте изображения Splashscreen в папки, как показано ниже:

    root/res/drawable-land-hdpi/screen.png
    root/res/drawable-land-ldpi/screen.png
    root/res/drawable-land-mdpi/screen.png
    root/res/drawable-land-xdpi/screen.png
    
    root/res/drawable-port-hdpi/screen.png
    root/res/drawable-port-ldpi/screen.png
    root/res/drawable-port-mdpi/screen.png
    root/res/drawable-port-xdpi/screen.png
    
  • Добавить плагин Screen Splash в проект Android. (git: git://git.apache.org/cordova-plugin-splashscreen.git)

    src/org/apache/cordova/splashscreen/SplashScreen.java
    
  • Добавить файл с плагином javascript в активах /www/js/lib/android/plugins/cordova -plugin-splashscreen/www/ (git: https://github.com/apache/cordova-plugin-splashscreen/blob/master/www/splashscreen.js)

  • Добавить вставку плагина в cordova_plugins.js

    {
        "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js",
        "id": "cordova-plugin-splashscreen.SplashScreen",
        "clobbers": [
            "navigator.splashscreen"
        ]
    },
    
    
    "cordova-plugin-splashscreen": "3.1.0",..   
    
  • Добавьте следующий код в config.xml

    <preference name="SplashScreen"         value="screen"/>
    <preference name="SplashScreenDelay"    value="5000" />
    <feature name="SplashScreen">
        <param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen" />
        <param name="onload" value="true" />
    </feature>
    
  • теперь создайте проект андроида.

Ответ 7

Я решил проблему, добавив тег splash по умолчанию

Добавьте это в config.xml в корневой каталог или в www/config.xml

<gap:splash src="splash.png" />