Compare commits

..

17 Commits
6.0.0 ... 6.0.1

Author SHA1 Message Date
Niklas Merz
35c22a8a1a Updated version and RELEASENOTES.md for release 6.0.1 2022-04-04 19:53:13 +02:00
Niklas Merz
d28daa372a chore: update package-lock.json (#325) 2022-04-04 19:46:20 +02:00
Daniel Stone
d780b0d9d6 GH-180 (android): Fixes nav and title bars still appearing when app is fullscreen (#213)
Co-authored-by: Daniel Stone <daniel.stone@powerdms.com>
Co-authored-by: distinctdan <distinctdan@users.noreply.github.com>
2022-04-03 20:04:56 +02:00
エリス
10be9d0aac ci(ios): update workflow w/ iOS 15 (#320) 2021-10-18 22:36:00 +09:00
エリス
4a4b38b1f5 ci: add action-badge (#319) 2021-09-24 21:51:24 +09:00
エリス
1bc42204e7 ci: remove travis & appveyor (#318) 2021-09-24 21:50:15 +09:00
エリス
ea3cbb6079 ci: add gh-actions workflows (#317) 2021-09-16 22:20:29 +09:00
Ivan Koprda
8bdf669a7b fix: autofocus after splashscreen (#312)
simple input with autofocus doesn't get focus on startup on Android > 8
2021-07-28 14:46:56 +09:00
Ken Naito
66d1e00e00 fix: refocus after webview visible (#186) (#314) 2021-07-28 14:43:09 +09:00
エリス
be673a94ac ci: add node-14.x to workflow (#304) 2020-11-28 17:17:58 +09:00
Saninn Salas Diaz
642549590b chore(docs): Update missing default resources for Android #689 (#291) 2020-10-19 09:11:12 -03:00
Mosab A
b0a866cb69 Documentation Enhancement for Android Dark Mode (#293) 2020-10-17 13:59:14 -03:00
Norman Breau
eb0d0e5865 docs: Added iOS notes to supported platforms. (#300) 2020-10-17 13:57:42 -03:00
Raphael von der Grün
43f9138d1f chore(pkg): remove default-valued field "homepage" (#296)
Related to https://github.com/apache/cordova/issues/55
2020-10-04 13:34:13 +02:00
Tim Brust
7e5b4fd93d ci(travis): updates Android API level (#292) 2020-08-21 14:35:18 +00:00
Hans Krywalsky
14d17c5c64 (docs): Add Information about how to use Dark Mode SplashScreens (#286) 2020-08-08 21:13:48 +09:00
Erisu
f41610c2f7 Increment package version to 6.0.1-dev 2020-07-20 14:04:11 +09:00
15 changed files with 2756 additions and 183 deletions

View File

@@ -1,32 +0,0 @@
# appveyor file
# http://www.appveyor.com/docs/appveyor-yml
max_jobs: 1
shallow_clone: true
init:
- git config --global core.autocrlf true
image:
- Visual Studio 2017
environment:
matrix:
- nodejs_version: "10"
- nodejs_version: "12"
platform:
- x86
- x64
install:
- ps: Install-Product node $env:nodejs_version
- node --version
- npm install -g cordova-paramedic@https://github.com/apache/cordova-paramedic.git
- npm install -g cordova
build: off
test_script:
- cordova-paramedic --config pr\windows-10-store --plugin . --justBuild

148
.github/workflows/android.yml vendored Normal file
View File

@@ -0,0 +1,148 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
name: Android Testsuite
on:
push:
paths-ignore:
- '**.md'
- 'LICENSE'
- '.eslint*'
pull_request:
paths-ignore:
- '**.md'
- 'LICENSE'
- '.eslint*'
jobs:
test:
name: Android ${{ matrix.versions.android }} Test
runs-on: macos-latest
# hoist configurations to top that are expected to be updated
env:
# Storing a copy of the repo
repo: ${{ github.event.pull_request.head.repo.full_name || github.repository }}
node-version: 16
# These are the default Java configurations used by most tests.
# To customize these options, add "java-distro" or "java-version" to the strategy matrix with its overriding value.
default_java-distro: adopt
default_java-version: 8
# These are the default Android System Image configurations used by most tests.
# To customize these options, add "system-image-arch" or "system-image-target" to the strategy matrix with its overriding value.
default_system-image-arch: x86_64
default_system-image-target: google_apis # Most system images have a google_api option. Set this as default.
# configurations for each testing strategy (test matrix)
strategy:
matrix:
versions:
- android: 5.1
android-api: 22
- android: 6
android-api: 23
- android: 7
android-api: 24
- android: 7.1
android-api: 25
- android: 8
android-api: 26
- android: 8.1
android-api: 27
system-image-target: default
- android: 9
android-api: 28
- android: 10
android-api: 29
- android: 11
android-api: 30
java-version: 11
timeout-minutes: 60
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: ${{ env.node-version }}
- uses: actions/setup-java@v2
env:
java-version: ${{ matrix.versions.java-version == '' && env.default_java-version || matrix.versions.java-version }}
java-distro: ${{ matrix.versions.java-distro == '' && env.default_java-distro || matrix.versions.java-distro }}
with:
distribution: ${{ env.java-distro }}
java-version: ${{ env.java-version }}
- name: Run Environment Information
run: |
node --version
npm --version
java -version
- name: Run npm install
run: |
export PATH="/usr/local/lib/android/sdk/platform-tools":$PATH
export JAVA_HOME=$JAVA_HOME_11_X64
npm i -g cordova@latest
npm ci
- name: Run paramedic install
if: ${{ endswith(env.repo, '/cordova-paramedic') != true }}
run: npm i -g github:apache/cordova-paramedic
- uses: reactivecircus/android-emulator-runner@5de26e4bd23bf523e8a4b7f077df8bfb8e52b50e
env:
system-image-arch: ${{ matrix.versions.system-image-arch == '' && env.default_system-image-arch || matrix.versions.system-image-arch }}
system-image-target: ${{ matrix.versions.system-image-target == '' && env.default_system-image-target || matrix.versions.system-image-target }}
with:
api-level: ${{ matrix.versions.android-api }}
target: ${{ env.system-image-target }}
arch: ${{ env.system-image-arch }}
force-avd-creation: false
disable-animations: false
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim
script: echo "Pregenerate the AVD before running Paramedic"
- name: Run paramedic tests
uses: reactivecircus/android-emulator-runner@5de26e4bd23bf523e8a4b7f077df8bfb8e52b50e
env:
system-image-arch: ${{ matrix.versions.system-image-arch == '' && env.default_system-image-arch || matrix.versions.system-image-arch }}
system-image-target: ${{ matrix.versions.system-image-target == '' && env.default_system-image-target || matrix.versions.system-image-target }}
test_config: 'android-${{ matrix.versions.android }}.config.json'
# Generally, this should automatically work for cordova-paramedic & plugins. If the path is unique, this can be manually changed.
test_plugin_path: ${{ endswith(env.repo, '/cordova-paramedic') && './spec/testable-plugin/' || './' }}
paramedic: ${{ endswith(env.repo, '/cordova-paramedic') && 'node main.js' || 'cordova-paramedic' }}
with:
api-level: ${{ matrix.versions.android-api }}
target: ${{ env.system-image-target }}
arch: ${{ env.system-image-arch }}
force-avd-creation: false
disable-animations: false
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim
script: ${{ env.paramedic }} --config ./pr/local/${{ env.test_config }} --plugin ${{ env.test_plugin_path }}

73
.github/workflows/chrome.yml vendored Normal file
View File

@@ -0,0 +1,73 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
name: Chrome Testsuite
on:
push:
paths-ignore:
- '**.md'
- 'LICENSE'
- '.eslint*'
pull_request:
paths-ignore:
- '**.md'
- 'LICENSE'
- '.eslint*'
jobs:
test:
name: Chrome Latest Test
runs-on: ubuntu-latest
# hoist configurations to top that are expected to be updated
env:
# Storing a copy of the repo
repo: ${{ github.event.pull_request.head.repo.full_name || github.repository }}
node-version: 16
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: ${{ env.node-version }}
- name: Run install xvfb
run: sudo apt-get install xvfb
- name: Run Environment Information
run: |
node --version
npm --version
- name: Run npm install
run: |
npm i -g cordova@latest
npm ci
- name: Run paramedic install
if: ${{ endswith(env.repo, '/cordova-paramedic') != true }}
run: npm i -g github:apache/cordova-paramedic
- name: Run paramedic tests
env:
test_config: 'browser.config.json'
# Generally, this should automatically work for cordova-paramedic & plugins. If the path is unique, this can be manually changed.
test_plugin_path: ${{ endswith(env.repo, '/cordova-paramedic') && './spec/testable-plugin/' || './' }}
paramedic: ${{ endswith(env.repo, '/cordova-paramedic') && 'node main.js' || 'cordova-paramedic' }}
run: xvfb-run --auto-servernum ${{ env.paramedic }} --config ./pr/local/${{ env.test_config }} --plugin ${{ env.test_plugin_path }}

106
.github/workflows/ios.yml vendored Normal file
View File

@@ -0,0 +1,106 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
name: iOS Testsuite
on:
push:
paths-ignore:
- '**.md'
- 'LICENSE'
- '.eslint*'
pull_request:
paths-ignore:
- '**.md'
- 'LICENSE'
- '.eslint*'
jobs:
test:
name: iOS ${{ matrix.versions.ios-version }} Test
runs-on: ${{ matrix.versions.os-version }}
# hoist configurations to top that are expected to be updated
env:
# Storing a copy of the repo
repo: ${{ github.event.pull_request.head.repo.full_name || github.repository }}
node-version: 16
# > Starting April 26, 2021, all iOS and iPadOS apps submitted to the App Store must be built with Xcode 12 and the iOS 14 SDK.
# Because of Apple's requirement, listed above, We will only be using the latest Xcode release for testing.
# To customize these options, add "xcode-version" to the strategy matrix with its overriding value.
default_xcode-version: latest-stable
strategy:
matrix:
versions:
- os-version: macos-10.15
ios-version: 12.x
xcode-version: 11.x
- os-version: macos-10.15
ios-version: 13.x
xcode-version: 11.x
- os-version: macos-10.15
ios-version: 14.x
xcode-version: 12.x
- os-version: macos-11
ios-version: 15.x
xcode-version: 13.x
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: ${{ env.node-version }}
- uses: maxim-lobanov/setup-xcode@881be567d30efed8fb3f12b5099d68c3fb72aa3d
env:
xcode-version: ${{ matrix.versions.xcode-version == '' && env.default_xcode-version || matrix.versions.xcode-version }}
with:
xcode-version: ${{ env.xcode-version }}
- name: Run Environment Information
run: |
node --version
npm --version
xcodebuild -version
- name: Run npm install
run: |
npm i -g cordova@latest ios-deploy@latest
npm ci
- name: Run setup iOS 12.x support
if: ${{ matrix.versions.ios-version == '12.x' }}
run: |
sudo mkdir -p /Library/Developer/CoreSimulator/Profiles/Runtimes
sudo ln -s /Applications/Xcode_10.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS\ 12.4.simruntime
- name: Run paramedic install
if: ${{ endswith(env.repo, '/cordova-paramedic') != true }}
run: npm i -g github:apache/cordova-paramedic
- name: Run paramedic tests
env:
test_config: 'ios-${{ matrix.versions.ios-version }}.config.json'
# Generally, this should automatically work for cordova-paramedic & plugins. If the path is unique, this can be manually changed.
test_plugin_path: ${{ endswith(env.repo, '/cordova-paramedic') && './spec/testable-plugin/' || './' }}
paramedic: ${{ endswith(env.repo, '/cordova-paramedic') && 'node main.js' || 'cordova-paramedic' }}
run: ${{ env.paramedic }} --config ./pr/local/${{ env.test_config }} --plugin ${{ env.test_plugin_path }}

56
.github/workflows/lint.yml vendored Normal file
View File

@@ -0,0 +1,56 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
name: Lint Test
on:
push:
paths:
- '**.js'
- '.eslint*'
- '.github/workflow/lint.yml'
pull_request:
paths:
- '**.js'
- '.eslint*'
- '.github/workflow/lint.yml'
jobs:
test:
name: Lint Test
runs-on: ubuntu-latest
env:
node-version: 16
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: ${{ env.node-version }}
- name: Run Environment Information
run: |
node --version
npm --version
- name: Run npm install
run: |
npm ci
- name: Run lint test
run: |
npm run lint

View File

@@ -1,3 +1,2 @@
.*
appveyor.yml
tests

View File

@@ -1,106 +0,0 @@
# This Travis configuration file is built after a Cordova Paramedic
# specific template with minimal modifications and adaptations:
# https://github.com/apache/cordova-paramedic/blob/master/.travis.yml
sudo: false
addons:
jwt:
# sauce labs key
secure: UmbBQ73ydIzhTCfaTb/g0beTwnOHjYxlILmQYK2Tl9Gna/KbpawiVmbloX1eZakevkeYgzQmAHEF0LyDINy5AUk97azYeP0Sz/IOjIDfXAdc6U6sZb7BScneBMt6ET/hCprG4f3mbmleQ+gx+dmNWez6rlb3Xu+XWfJuwDfAWm0=
env:
global:
- SAUCE_USERNAME=snay
- TRAVIS_NODE_VERSION=12
- ANDROID_API_LEVEL=28
- ANDROID_BUILD_TOOLS_VERSION=28.0.3
language: node_js
node_js: 12
# yaml anchor/alias: https://medium.com/@tommyvn/travis-yml-dry-with-anchors-8b6a3ac1b027
_android: &_android
language: android
os: linux
jdk: oraclejdk8
android:
components:
- tools
- build-tools-$ANDROID_BUILD_TOOLS_VERSION
- android-$ANDROID_API_LEVEL
licenses:
- "android-sdk-preview-license-.+"
- "android-sdk-license-.+"
- "google-gdk-license-.+"
matrix:
include:
# one local test, without saucelabs
- env: PLATFORM=local/browser
os: osx
# many tests with saucelabs
- env: PLATFORM=browser-chrome
- env: PLATFORM=browser-firefox
- env: PLATFORM=browser-safari
- env: PLATFORM=browser-edge
- env: PLATFORM=android-5.1
<<: *_android
- env: PLATFORM=android-6.0
<<: *_android
- env: PLATFORM=android-7.0
<<: *_android
- env: PLATFORM=android-7.1
<<: *_android
- env: PLATFORM=android-8.0
<<: *_android
- env: PLATFORM=android-8.1
<<: *_android
- env: PLATFORM=android-9.0
<<: *_android
before_install:
# manually install Node for `language: android`
- if [[ "$PLATFORM" =~ android ]]; then nvm install $TRAVIS_NODE_VERSION; fi
- node --version
- if [[ "$PLATFORM" =~ android ]]; then gradle --version; fi
- npm install -g cordova
# install paramedic if not running on paramedic repo
- if ! [[ "$TRAVIS_REPO_SLUG" =~ cordova-paramedic ]]; then npm install -g github:apache/cordova-paramedic; fi
install:
- npm install
before_script:
- |
if [[ "$TRAVIS_REPO_SLUG" =~ cordova-paramedic ]]; then
# when used in the cordova-paramedic repo
TEST_COMMAND="npm run eslint"
PARAMEDIC_PLUGIN_TO_TEST="./spec/testable-plugin/"
PARAMEDIC_COMMAND="node main.js"
else
# when used in any other (plugin) repo
TEST_COMMAND="npm test"
PARAMEDIC_PLUGIN_TO_TEST=$(pwd)
PARAMEDIC_COMMAND="cordova-paramedic"
fi
- PARAMEDIC_BUILDNAME=travis-$TRAVIS_REPO_SLUG-$TRAVIS_JOB_NUMBER
- |
echo "Variables now are set to:"
echo "TEST_COMMAND=$TEST_COMMAND"
echo "ADDITIONAL_TESTS=$ADDITIONAL_TESTS"
echo "PARAMEDIC_COMMAND=$PARAMEDIC_COMMAND"
echo "PLATFORM=$PLATFORM"
echo "PARAMEDIC_PLUGIN_TO_TEST=$PARAMEDIC_PLUGIN_TO_TEST"
echo "PARAMEDIC_BUILDNAME=$PARAMEDIC_BUILDNAME"
script:
- $TEST_COMMAND
- |
if [[ "$ADDITIONAL_TESTS_DIR" != "" ]]; then
cd $ADDITIONAL_TESTS_DIR && npm install && npm test;
else
$PARAMEDIC_COMMAND --config ./pr/$PLATFORM --plugin $PARAMEDIC_PLUGIN_TO_TEST --buildName $PARAMEDIC_BUILDNAME;
fi

View File

@@ -21,12 +21,10 @@ description: Control the splash screen for your app.
# under the License.
-->
|AppVeyor|Travis CI|
|:-:|:-:|
|[![Build status](https://ci.appveyor.com/api/projects/status/github/apache/cordova-plugin-splashscreen?branch=master)](https://ci.appveyor.com/project/ApacheSoftwareFoundation/cordova-plugin-splashscreen)|[![Build Status](https://travis-ci.org/apache/cordova-plugin-splashscreen.svg?branch=master)](https://travis-ci.org/apache/cordova-plugin-splashscreen)|
# cordova-plugin-splashscreen
[![Android Testsuite](https://github.com/apache/cordova-plugin-splashscreen/actions/workflows/android.yml/badge.svg)](https://github.com/apache/cordova-plugin-splashscreen/actions/workflows/android.yml) [![Chrome Testsuite](https://github.com/apache/cordova-plugin-splashscreen/actions/workflows/chrome.yml/badge.svg)](https://github.com/apache/cordova-plugin-splashscreen/actions/workflows/chrome.yml) [![iOS Testsuite](https://github.com/apache/cordova-plugin-splashscreen/actions/workflows/ios.yml/badge.svg)](https://github.com/apache/cordova-plugin-splashscreen/actions/workflows/ios.yml) [![Lint Test](https://github.com/apache/cordova-plugin-splashscreen/actions/workflows/lint.yml/badge.svg)](https://github.com/apache/cordova-plugin-splashscreen/actions/workflows/lint.yml)
This plugin displays and hides a splash screen while your web application is launching. Using its methods you can also show and hide the splash screen manually.
- [cordova-plugin-splashscreen](#cordova-plugin-splashscreen)
@@ -38,6 +36,7 @@ This plugin displays and hides a splash screen while your web application is lau
- [Image Layout](#image-layout)
- [`density`](#density)
- [Image Sizing Table](#image-sizing-table)
- [Dark Mode](#dark-mode)
- [Example Android Configuration](#example-android-configuration)
- [iOS-specific Information](#ios-specific-information)
- [Launch Storyboard Images](#launch-storyboard-images)
@@ -47,6 +46,7 @@ This plugin displays and hides a splash screen while your web application is lau
- [Size classes](#size-classes)
- [Single-image launch screen](#single-image-launch-screen)
- [Multi-image launch screen](#multi-image-launch-screen)
- [Dark Mode](#dark-mode-1)
- [Quirks and Known Issues](#quirks-and-known-issues)
- [Windows-specific Information](#windows-specific-information)
- [Preferences](#preferences)
@@ -72,7 +72,10 @@ This plugin displays and hides a splash screen while your web application is lau
## Supported Platforms
- Android
- iOS
- iOS
__Note__: iOS implementation has been moved to the core framework.
If using `cordova-ios@5` or earlier, use `cordova-plugin-splashscreen@5`
If using `cordova-ios@6` or later, use `cordova-plugin-splashscreen@6`. If developing exclusively for the iOS platform, this plugin can be uninstalled.
- Windows (`cordova-windows` version >= 4.4.0 is required)
__Note__: Extended splashscreen does not require the plugin on Windows (as opposed to Android and iOS) in case you don't use the plugin API, i.e. programmatic hide/show.
- Browser
@@ -177,10 +180,30 @@ If not all DPI images are considered, some devices might not show a SplashScreen
| xxhdpi | 960x1600 | 1600x960 |
| xxxhdpi | 1280x1920 | 1920x1280 |
#### Dark Mode (API 28+)
You can optionally provide an extra SplashScreen image to be used in dark/night mode when enabled on supported devices.
To do this, add the `-night` keyword in between the **layout** and **size** keywords of the image's `density` attribute value. E.g.: `land-night-hdpi`
For more examples, please see [the Example Configuration](#example-android-configuration) section.
#### Example Android Configuration
```xml
<platform name="android">
<!-- Default
Note: You should specify default resources for each density.
-- For instance, if the device(hdpi) is in landscape orientation and [density="land-hdpi"]
-- does not exists, [density="hdpi"] will be selected
If you do not declare this you will get MissingDefaultResource lint check errors.
-->
<splash src="res/screen/android/splash-port-hdpi.png" density="hdpi"/>
<splash src="res/screen/android/splash-port-ldpi.png" density="ldpi"/>
<splash src="res/screen/android/splash-port-mdpi.png" density="mdpi"/>
<splash src="res/screen/android/splash-port-xhdpi.png" density="xhdpi"/>
<splash src="res/screen/android/splash-port-xxhdpi.png" density="xxhdpi"/>
<!-- Landscape -->
<splash src="res/screen/android/splash-land-hdpi.png" density="land-hdpi" />
<splash src="res/screen/android/splash-land-ldpi.png" density="land-ldpi" />
<splash src="res/screen/android/splash-land-mdpi.png" density="land-mdpi" />
@@ -188,12 +211,28 @@ If not all DPI images are considered, some devices might not show a SplashScreen
<splash src="res/screen/android/splash-land-xxhdpi.png" density="land-xxhdpi" />
<splash src="res/screen/android/splash-land-xxxhdpi.png" density="land-xxxhdpi" />
<!-- Portrait -->
<splash src="res/screen/android/splash-port-hdpi.png" density="port-hdpi" />
<splash src="res/screen/android/splash-port-ldpi.png" density="port-ldpi" />
<splash src="res/screen/android/splash-port-mdpi.png" density="port-mdpi" />
<splash src="res/screen/android/splash-port-xhdpi.png" density="port-xhdpi" />
<splash src="res/screen/android/splash-port-xxhdpi.png" density="port-xxhdpi" />
<splash src="res/screen/android/splash-port-xxxhdpi.png" density="port-xxxhdpi" />
<!-- Dark Mode -->
<splash src="res/screen/android/splash-land-night-hdpi.png" density="land-night-hdpi" />
<splash src="res/screen/android/splash-land-night-ldpi.png" density="land-night-ldpi" />
<splash src="res/screen/android/splash-land-night-mdpi.png" density="land-night-mdpi" />
<splash src="res/screen/android/splash-land-night-xhdpi.png" density="land-night-xhdpi" />
<splash src="res/screen/android/splash-land-night-xxhdpi.png" density="land-night-xxhdpi" />
<splash src="res/screen/android/splash-land-night-xxxhdpi.png" density="land-night-xxxhdpi" />
<splash src="res/screen/android/splash-port-night-hdpi.png" density="port-night-hdpi" />
<splash src="res/screen/android/splash-port-night-ldpi.png" density="port-night-ldpi" />
<splash src="res/screen/android/splash-port-night-mdpi.png" density="port-night-mdpi" />
<splash src="res/screen/android/splash-port-night-xhdpi.png" density="port-night-xhdpi" />
<splash src="res/screen/android/splash-port-night-xxhdpi.png" density="port-night-xxhdpi" />
<splash src="res/screen/android/splash-port-night-xxxhdpi.png" density="port-night-xxxhdpi" />
</platform>
```
@@ -343,6 +382,23 @@ The above looks like the following in `config.xml`:
<splash src="res/screen/ios/Default@2x~ipad~comany.png" />
```
##### Dark Mode
Since [Cordova-iOS@6.1.0](https://github.com/apache/cordova-ios), it is now possible to optionally specify different SplashScreen images to use when the app is running in dark mode. The luminosity of SplashScreen images can be defined in `config.xml` using the `~dark` and `~light` suffixes.
```xml
<!-- Default image to be used for all modes -->
<splash src="res/screen/ios/Default@2x~universal~anyany.png" />
<!-- Image to use specifically for dark mode devices -->
<splash src="res/screen/ios/Default@2x~universal~anyany~dark.png" />
<!-- Image to use specifically for light mode devices -->
<splash src="res/screen/ios/Default@2x~universal~anyany~light.png" />
```
**Note:** This works since iOS 13. iOS 12 and below will use the default SplashScreen without a luminosity suffix specified.
##### Quirks and Known Issues
1. **App on target may not reflect changes to images**

View File

@@ -20,6 +20,23 @@
-->
# Release Notes
### 6.0.1 (Apr 04, 2022)
* [GH-325](https://github.com/apache/cordova-plugin-splashscreen/pull/325)chore: update package-lock.json
* [GH-213](https://github.com/apache/cordova-plugin-splashscreen/pull/213)GH-180 (android): Fixes nav and title bars still appearing when app is fullscreen
* [GH-320](https://github.com/apache/cordova-plugin-splashscreen/pull/320)ci(ios): update workflow w/ **iOS** 15
* [GH-319](https://github.com/apache/cordova-plugin-splashscreen/pull/319)ci: add action-badge
* [GH-318](https://github.com/apache/cordova-plugin-splashscreen/pull/318)ci: remove travis & appveyor
* [GH-317](https://github.com/apache/cordova-plugin-splashscreen/pull/317)ci: add gh-actions workflows
* [GH-312](https://github.com/apache/cordova-plugin-splashscreen/pull/312)fix: autofocus after splashscreen
* [GH-314](https://github.com/apache/cordova-plugin-splashscreen/pull/314)fix: refocus after webview visible (#186)
* [GH-304](https://github.com/apache/cordova-plugin-splashscreen/pull/304)ci: add node-14.x to workflow
* [GH-291](https://github.com/apache/cordova-plugin-splashscreen/pull/291)chore(docs): Update missing default resources for **Android** #689
* [GH-293](https://github.com/apache/cordova-plugin-splashscreen/pull/293)Documentation Enhancement for **Android** Dark Mode
* [GH-300](https://github.com/apache/cordova-plugin-splashscreen/pull/300)docs: Added **iOS** notes to supported platforms.
* [GH-296](https://github.com/apache/cordova-plugin-splashscreen/pull/296)chore(pkg): remove default-valued field "homepage"
* [GH-292](https://github.com/apache/cordova-plugin-splashscreen/pull/292)ci(travis): updates **Android** API level
* [GH-286](https://github.com/apache/cordova-plugin-splashscreen/pull/286)(docs): Add Information about how to use Dark Mode SplashScreens
### 6.0.0 (Jul 07, 2020)
* [GH-282](https://github.com/apache/cordova-plugin-splashscreen/pull/282) fix: js `clobber` only on supported platforms

2281
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "cordova-plugin-splashscreen",
"version": "6.0.0",
"version": "6.0.1",
"description": "Cordova Splashscreen Plugin",
"types": "./types/index.d.ts",
"cordova": {
@@ -43,6 +43,5 @@
"license": "Apache-2.0",
"devDependencies": {
"@cordova/eslint-config": "^3.0.0"
},
"homepage": "https://github.com/apache/cordova-plugin-splashscreen#readme"
}
}

View File

@@ -20,7 +20,7 @@
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
id="cordova-plugin-splashscreen"
version="6.0.0">
version="6.0.1">
<name>Splashscreen</name>
<description>Cordova Splashscreen Plugin</description>
<license>Apache 2.0</license>

View File

@@ -32,6 +32,7 @@ import android.view.Display;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.AlphaAnimation;
@@ -194,6 +195,7 @@ public class SplashScreen extends CordovaPlugin {
} else if ("spinner".equals(id)) {
if ("stop".equals(data.toString())) {
getView().setVisibility(View.VISIBLE);
getView().requestFocus();
}
} else if ("onReceivedError".equals(id)) {
this.spinnerStop();
@@ -314,16 +316,48 @@ public class SplashScreen extends CordovaPlugin {
// Create and show the dialog
splashDialog = new Dialog(context, android.R.style.Theme_Translucent_NoTitleBar);
// check to see if the splash screen should be full screen
if ((cordova.getActivity().getWindow().getAttributes().flags & WindowManager.LayoutParams.FLAG_FULLSCREEN)
== WindowManager.LayoutParams.FLAG_FULLSCREEN) {
splashDialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
// Check to see if the splash screen should be full screen.
// On first run, currently cordova hasn't set the window flags yet because it does it in
// onWindowFocusChanged instead of onCreate. If that's the case, we'll fall back to the
// Fullscreen preference. Hopefully it will get fixed so that cordova sets them in onCreate,
// so that this fallback can be removed.
boolean isFullscreen = false;
int mainWindowFlags = cordova.getActivity().getWindow().getAttributes().flags;
boolean flagFullscreen = (mainWindowFlags & WindowManager.LayoutParams.FLAG_FULLSCREEN)
== WindowManager.LayoutParams.FLAG_FULLSCREEN;
boolean flagForceNotFullscreen = (mainWindowFlags & WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN)
== WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN;
// If cordova has set flags, one of these must be true.
if (flagFullscreen || flagForceNotFullscreen) {
isFullscreen = flagFullscreen;
} else {
// Cordova hasn't set flags, fall back to reading preference.
isFullscreen = preferences.getBoolean("Fullscreen", false);
}
Window dialogWindow = splashDialog.getWindow();
if (isFullscreen) {
dialogWindow.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
splashDialog.setContentView(splashImageView);
splashDialog.setCancelable(false);
splashDialog.show();
if (isFullscreen) {
// These must be set after .show() is called because they only work on visible views.
// When the splashscreen hides, the app will revert to whatever was set in CordovaActivity
dialogWindow.getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
if (preferences.getBoolean("ShowSplashScreenSpinner", true)) {
spinnerStart();
}

View File

@@ -1,6 +1,6 @@
{
"name": "cordova-plugin-splashscreen-tests",
"version": "6.0.0",
"version": "6.0.1",
"description": "",
"cordova": {
"id": "cordova-plugin-splashscreen-tests",

View File

@@ -20,7 +20,7 @@
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
id="cordova-plugin-splashscreen-tests"
version="6.0.0">
version="6.0.1">
<name>Cordova Splashscreen Plugin Tests</name>
<license>Apache 2.0</license>