mirror of
https://github.com/apache/cordova-plugin-splashscreen.git
synced 2026-02-05 00:01:30 +08:00
Compare commits
54 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
09e1f06fb0 | ||
|
|
9a6ff27008 | ||
|
|
cadc68f75b | ||
|
|
be8be330ac | ||
|
|
4ffaaa2952 | ||
|
|
b5e0c786c5 | ||
|
|
5197c664c3 | ||
|
|
fb606fec6a | ||
|
|
57b553a68e | ||
|
|
031afc5056 | ||
|
|
36bf91c9e8 | ||
|
|
a606af98ca | ||
|
|
2ae821c4a8 | ||
|
|
36c43827bb | ||
|
|
326f13220e | ||
|
|
5ca43e8c5d | ||
|
|
278c5d8168 | ||
|
|
7cb318727b | ||
|
|
c2c3a980e1 | ||
|
|
1a4b51fbc8 | ||
|
|
0b75c1faa0 | ||
|
|
09e95a2628 | ||
|
|
3180758a4e | ||
|
|
50a55883d3 | ||
|
|
833dc7f783 | ||
|
|
e443871785 | ||
|
|
fcef678a7f | ||
|
|
e5c6772f17 | ||
|
|
7c0ab0fa51 | ||
|
|
7735ae0598 | ||
|
|
b0e1157c8a | ||
|
|
a18cc8241a | ||
|
|
bf9607e27f | ||
|
|
87d29ad6d3 | ||
|
|
2db7bac571 | ||
|
|
d6db9f3459 | ||
|
|
be635a36c1 | ||
|
|
d63786d33b | ||
|
|
98f83fea5a | ||
|
|
c81df6f274 | ||
|
|
ffda2e81b9 | ||
|
|
e0cf396835 | ||
|
|
7f140e0176 | ||
|
|
85aa605a12 | ||
|
|
7c687957f8 | ||
|
|
13849c3d20 | ||
|
|
90ba3dfc5b | ||
|
|
b1ceb532f8 | ||
|
|
1185561549 | ||
|
|
894d164191 | ||
|
|
caa5534c0d | ||
|
|
a922ce0453 | ||
|
|
6195d6741b | ||
|
|
0f2a069588 |
28
.appveyor.yml
Normal file
28
.appveyor.yml
Normal file
@@ -0,0 +1,28 @@
|
||||
# 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:
|
||||
nodejs_version: "4"
|
||||
matrix:
|
||||
- PLATFORM: windows-10-store
|
||||
JUST_BUILD: --justBuild
|
||||
install:
|
||||
- npm cache clean -f
|
||||
- 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\%PLATFORM% --plugin . %JUST_BUILD%
|
||||
103
.travis.yml
103
.travis.yml
@@ -1,9 +1,98 @@
|
||||
language: objective-c
|
||||
osx_image: xcode7
|
||||
sudo: false
|
||||
node_js:
|
||||
- "4.2"
|
||||
addons:
|
||||
jwt:
|
||||
secure: UmbBQ73ydIzhTCfaTb/g0beTwnOHjYxlILmQYK2Tl9Gna/KbpawiVmbloX1eZakevkeYgzQmAHEF0LyDINy5AUk97azYeP0Sz/IOjIDfXAdc6U6sZb7BScneBMt6ET/hCprG4f3mbmleQ+gx+dmNWez6rlb3Xu+XWfJuwDfAWm0=
|
||||
env:
|
||||
- TEST_DIR=.
|
||||
- TEST_DIR=./tests/ios
|
||||
script: cd $TEST_DIR && npm install && (npm test || npm test)
|
||||
global:
|
||||
- SAUCE_USERNAME=snay
|
||||
- TRAVIS_NODE_VERSION="4.2"
|
||||
matrix:
|
||||
include:
|
||||
- env: PLATFORM=browser-chrome
|
||||
os: linux
|
||||
language: node_js
|
||||
node_js: '4.2'
|
||||
- env: PLATFORM=browser-firefox
|
||||
os: linux
|
||||
language: node_js
|
||||
node_js: '4.2'
|
||||
- env: PLATFORM=browser-safari
|
||||
os: linux
|
||||
language: node_js
|
||||
node_js: '4.2'
|
||||
- env: PLATFORM=browser-edge
|
||||
os: linux
|
||||
language: node_js
|
||||
node_js: '4.2'
|
||||
- env: TEST_DIR=.
|
||||
language: objective-c
|
||||
osx_image: xcode7
|
||||
- env: TEST_DIR=./tests/ios
|
||||
language: objective-c
|
||||
osx_image: xcode7
|
||||
- env: PLATFORM=ios-9.3
|
||||
os: osx
|
||||
osx_image: xcode7.3
|
||||
language: node_js
|
||||
node_js: '4.2'
|
||||
- env: PLATFORM=ios-10.0
|
||||
os: osx
|
||||
osx_image: xcode7.3
|
||||
language: node_js
|
||||
node_js: '4.2'
|
||||
- env: PLATFORM=android-4.4
|
||||
os: linux
|
||||
language: android
|
||||
jdk: oraclejdk8
|
||||
android:
|
||||
components:
|
||||
- tools
|
||||
- extra-android-m2repository
|
||||
- build-tools-26.0.2
|
||||
- env: PLATFORM=android-5.1
|
||||
os: linux
|
||||
language: android
|
||||
jdk: oraclejdk8
|
||||
android:
|
||||
components:
|
||||
- tools
|
||||
- extra-android-m2repository
|
||||
- build-tools-26.0.2
|
||||
- env: PLATFORM=android-6.0
|
||||
os: linux
|
||||
language: android
|
||||
jdk: oraclejdk8
|
||||
android:
|
||||
components:
|
||||
- tools
|
||||
- extra-android-m2repository
|
||||
- build-tools-26.0.2
|
||||
- env: PLATFORM=android-7.0
|
||||
os: linux
|
||||
language: android
|
||||
jdk: oraclejdk8
|
||||
android:
|
||||
components:
|
||||
- tools
|
||||
- extra-android-m2repository
|
||||
- build-tools-26.0.2
|
||||
before_install:
|
||||
- rm -rf ~/.nvm && git clone https://github.com/creationix/nvm.git ~/.nvm && (cd ~/.nvm
|
||||
&& git checkout `git describe --abbrev=0 --tags`) && source ~/.nvm/nvm.sh && nvm
|
||||
install $TRAVIS_NODE_VERSION
|
||||
- node --version
|
||||
- if [[ "$PLATFORM" =~ android ]]; then gradle --version; fi
|
||||
- if [[ "$PLATFORM" =~ ios ]]; then npm install -g ios-deploy; fi
|
||||
- if [[ "$PLATFORM" =~ android ]]; then echo y | android update sdk -u --filter android-22,android-23,android-24,android-25,android-26;
|
||||
fi
|
||||
- git clone https://github.com/apache/cordova-paramedic /tmp/paramedic && pushd /tmp/paramedic
|
||||
&& npm install && popd
|
||||
- npm install -g cordova
|
||||
install:
|
||||
- npm install
|
||||
script:
|
||||
- if [[ "$TEST_DIR" != "" ]];
|
||||
then cd $TEST_DIR && npm install && (npm test || npm test);
|
||||
else node /tmp/paramedic/main.js --config pr/$PLATFORM --plugin $(pwd) --shouldUseSauce
|
||||
--buildName travis-plugin-splashscreen-$TRAVIS_JOB_NUMBER;
|
||||
fi
|
||||
|
||||
28
README.md
28
README.md
@@ -21,9 +21,9 @@ description: Control the splash screen for your app.
|
||||
# under the License.
|
||||
-->
|
||||
|
||||
|Android 4.4|Android 5.1|iOS 9.3|iOS 10.0|Windows 10 Store|Travis CI|
|
||||
|:-:|:-:|:-:|:-:|:-:|:-:|
|
||||
|[](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=android-4.4,PLUGIN=cordova-plugin-splashscreen/)|[](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=android-5.1,PLUGIN=cordova-plugin-splashscreen/)|[](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=ios-9.3,PLUGIN=cordova-plugin-splashscreen/)|[](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=ios-10.0,PLUGIN=cordova-plugin-splashscreen/)|[](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=windows-10-store,PLUGIN=cordova-plugin-splashscreen/)|[](https://travis-ci.org/apache/cordova-plugin-splashscreen)|
|
||||
|AppVeyor|Travis CI|
|
||||
|:-:|:-:|
|
||||
|[](https://ci.appveyor.com/project/ApacheSoftwareFoundation/cordova-plugin-splashscreen)|[](https://travis-ci.org/apache/cordova-plugin-splashscreen)|
|
||||
|
||||
# cordova-plugin-splashscreen
|
||||
|
||||
@@ -41,11 +41,8 @@ Report issues with this plugin on the [Apache Cordova issue tracker][Apache Cord
|
||||
|
||||
## Supported Platforms
|
||||
|
||||
- Amazon Fire OS
|
||||
- Android
|
||||
- BlackBerry 10
|
||||
- iOS
|
||||
- Windows Phone 7 and 8
|
||||
- Windows (`cordova-windows` version >= 4.4.0 is required)
|
||||
- Browser
|
||||
|
||||
@@ -81,10 +78,11 @@ If you choose to use legacy launch images, you will use the following syntax in
|
||||
|
||||
Technically the filename for the `src` attribute can be anything you want; the filenames are used because they match what will be used when your project is compiled. The width and height attributes determine which launch images are displayed on which devices as follows:
|
||||
|
||||
| width | height | device (orientation) |
|
||||
|:-----------:|:------------:|:-------------------------:|
|
||||
| width | height | device (orientation) |
|
||||
|:-----------:|:------------:|:--------------------------------:|
|
||||
| 320 | 480 | All non-retina iPhones and iPods |
|
||||
| 640 | 960 | iPhone 4/4s/5/5s (portrait) |
|
||||
| 640 | 960 | iPhone 4/4s (portrait) |
|
||||
| 640 | 1136 | iPhone 5/5s/SE (portrait) |
|
||||
| 750 | 1334 | iPhone 6/6s/7 (portrait) |
|
||||
| 1242 | 2208 | iPhone 6+/6s+/7+ (portrait) |
|
||||
| 2208 | 1242 | iPhone 6+/6s+/7+ (landscape) |
|
||||
@@ -352,12 +350,6 @@ projectRoot
|
||||
<splash src="res/screen/windows/splashscreenphone.png" width="1152" height="1920"/>
|
||||
</platform>-->
|
||||
|
||||
<platform name="blackberry10">
|
||||
<!-- Add a rim:splash element for each resolution and locale you wish -->
|
||||
<!-- http://developer.blackberry.com/html5/documentation/rim_splash_element.html -->
|
||||
<rim:splash src="res/screen/blackberry/splashscreen.png"/>
|
||||
</platform>
|
||||
|
||||
<preference name="SplashScreenDelay" value="10000" />
|
||||
```
|
||||
|
||||
@@ -435,6 +427,7 @@ In your `config.xml`, you can add the following preferences:
|
||||
```xml
|
||||
<preference name="SplashMaintainAspectRatio" value="true|false" />
|
||||
<preference name="SplashShowOnlyFirstTime" value="true|false" />
|
||||
<preference name="SplashScreenSpinnerColor" value="white" />
|
||||
```
|
||||
|
||||
"SplashMaintainAspectRatio" preference is optional. If set to true, splash screen drawable is not stretched to fit screen, but instead simply "covers" the screen, like CSS "background-size:cover". This is very useful when splash screen images cannot be distorted in any way, for example when they contain scenery or text. This setting works best with images that have large margins (safe areas) that can be safely cropped on screens with different aspect ratios.
|
||||
@@ -443,6 +436,8 @@ The plugin reloads splash drawable whenever orientation changes, so you can spec
|
||||
|
||||
"SplashShowOnlyFirstTime" preference is also optional and defaults to `true`. When set to `true` splash screen will only appear on application launch. However, if you plan to use `navigator.app.exitApp()` to close application and force splash screen appear on next launch, you should set this property to `false` (this also applies to closing the App with Back button).
|
||||
|
||||
"SplashScreenSpinnerColor" preference is also optional and is ignored when not set. Setting it to a valid color name or HEX color code will change the color of the spinner on Android 5.0+ devices.
|
||||
|
||||
### Browser Quirks
|
||||
|
||||
You can use the following preferences in your `config.xml`:
|
||||
@@ -450,6 +445,7 @@ You can use the following preferences in your `config.xml`:
|
||||
```xml
|
||||
<platform name="browser">
|
||||
<preference name="SplashScreen" value="/images/browser/splashscreen.jpg" /> <!-- defaults to "/img/logo.png" -->
|
||||
<preference name="AutoHideSplashScreen" value="true" /> <!-- defaults to "true" -->
|
||||
<preference name="SplashScreenDelay" value="3000" /> <!-- defaults to "3000" -->
|
||||
<preference name="SplashScreenBackgroundColor" value="green" /> <!-- defaults to "#464646" -->
|
||||
<preference name="ShowSplashScreen" value="false" /> <!-- defaults to "true" -->
|
||||
@@ -494,7 +490,7 @@ navigator.splashscreen.hide();
|
||||
```
|
||||
|
||||
|
||||
### BlackBerry 10, WP8, iOS Quirk
|
||||
### iOS Quirk
|
||||
|
||||
The `config.xml` file's `AutoHideSplashScreen` setting must be
|
||||
`false`. To delay hiding the splash screen for two seconds, add a
|
||||
|
||||
@@ -20,6 +20,31 @@
|
||||
-->
|
||||
# Release Notes
|
||||
|
||||
### 5.0.2 (Jan 24, 2018)
|
||||
* [CB-13750](https://issues.apache.org/jira/browse/CB-13750) Add build-tools-26.0.2 to travis
|
||||
* [CB-13737](https://issues.apache.org/jira/browse/CB-13737) (iOS): fix Splash screen images for iPhone X
|
||||
|
||||
### 5.0.1 (Dec 27, 2017)
|
||||
* [CB-13709](https://issues.apache.org/jira/browse/CB-13709) Fix to allow 5.0.0 version install (#144)
|
||||
|
||||
### 5.0.0 (Dec 15, 2017)
|
||||
* [CB-13677](https://issues.apache.org/jira/browse/CB-13677) Remove deprecated platforms
|
||||
|
||||
### 4.1.0 (Nov 06, 2017)
|
||||
* [CB-13473](https://issues.apache.org/jira/browse/CB-13473) (CI) Removed **Browser** builds from AppVeyor
|
||||
* [CB-12011](https://issues.apache.org/jira/browse/CB-12011) (android) added the possibility to change the spinner color on **Android 5.0**+ apps
|
||||
* [CB-13028](https://issues.apache.org/jira/browse/CB-13028) (CI) **Browser** builds on Travis and AppVeyor
|
||||
* [CB-13094](https://issues.apache.org/jira/browse/CB-13094) (android) Don't show splash when activity being finished
|
||||
* [CB-11487](https://issues.apache.org/jira/browse/CB-11487) (browser) Documented `AutoHideSplashScreen` for **Browser**
|
||||
* [CB-11488](https://issues.apache.org/jira/browse/CB-11488) (browser) The `hide()` call became non re-entrant after the addition of fade out. This fixes the issue.
|
||||
* [CB-11487](https://issues.apache.org/jira/browse/CB-11487) (browser) The standard `AutoHideSplashScreen` `config.xml` property is now supported by the **Browser** platform.
|
||||
* [CB-11486](https://issues.apache.org/jira/browse/CB-11486) (browser) `splashScreenDelay` now feed through `parseInt` to ensure it is an integer by the time it's value is passed in to `setTimeout()` in `hide()`.
|
||||
* [CB-12847](https://issues.apache.org/jira/browse/CB-12847) added `bugs` entry to `package.json`.
|
||||
|
||||
### 4.0.3 (Apr 27, 2017)
|
||||
* [CB-12622](https://issues.apache.org/jira/browse/CB-12622) Added **Android 6.0** build badge to `README`
|
||||
* [CB-12685](https://issues.apache.org/jira/browse/CB-12685) added `package.json` to tests folder
|
||||
|
||||
### 4.0.2 (Feb 28, 2017)
|
||||
* [CB-12353](https://issues.apache.org/jira/browse/CB-12353) Corrected merges usage in `plugin.xml`
|
||||
* [CB-12369](https://issues.apache.org/jira/browse/CB-12369) Add plugin typings from `DefinitelyTyped`
|
||||
|
||||
21
package.json
21
package.json
@@ -1,39 +1,32 @@
|
||||
{
|
||||
"name": "cordova-plugin-splashscreen",
|
||||
"version": "4.0.2",
|
||||
"version": "5.0.2",
|
||||
"description": "Cordova Splashscreen Plugin",
|
||||
"types": "./types/index.d.ts",
|
||||
"cordova": {
|
||||
"id": "cordova-plugin-splashscreen",
|
||||
"platforms": [
|
||||
"android",
|
||||
"amazon-fireos",
|
||||
"ubuntu",
|
||||
"ios",
|
||||
"blackberry10",
|
||||
"wp8",
|
||||
"windows8",
|
||||
"windows",
|
||||
"tizen"
|
||||
"browser"
|
||||
]
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/apache/cordova-plugin-splashscreen"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://issues.apache.org/jira/browse/CB"
|
||||
},
|
||||
"keywords": [
|
||||
"cordova",
|
||||
"splashscreen",
|
||||
"ecosystem:cordova",
|
||||
"cordova-android",
|
||||
"cordova-amazon-fireos",
|
||||
"cordova-ubuntu",
|
||||
"cordova-ios",
|
||||
"cordova-blackberry10",
|
||||
"cordova-wp8",
|
||||
"cordova-windows8",
|
||||
"cordova-windows",
|
||||
"cordova-tizen"
|
||||
"cordova-windows"
|
||||
],
|
||||
"scripts": {
|
||||
"test": "npm run jshint",
|
||||
@@ -48,7 +41,7 @@
|
||||
"cordova-android": ">=3.6.0",
|
||||
"cordova-windows": ">=4.4.0"
|
||||
},
|
||||
"5.0.0": {
|
||||
"6.0.0": {
|
||||
"cordova": ">100"
|
||||
}
|
||||
}
|
||||
|
||||
55
plugin.xml
55
plugin.xml
@@ -20,7 +20,7 @@
|
||||
|
||||
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
|
||||
id="cordova-plugin-splashscreen"
|
||||
version="4.0.2">
|
||||
version="5.0.2">
|
||||
<name>Splashscreen</name>
|
||||
<description>Cordova Splashscreen Plugin</description>
|
||||
<license>Apache 2.0</license>
|
||||
@@ -49,23 +49,6 @@
|
||||
<source-file src="src/android/SplashScreen.java" target-dir="src/org/apache/cordova/splashscreen" />
|
||||
</platform>
|
||||
|
||||
<!-- amazon-fireos -->
|
||||
<platform name="amazon-fireos">
|
||||
<config-file target="res/xml/config.xml" parent="/*">
|
||||
<feature name="SplashScreen">
|
||||
<param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen"/>
|
||||
</feature>
|
||||
</config-file>
|
||||
|
||||
<source-file src="src/android/SplashScreen.java" target-dir="src/org/apache/cordova/splashscreen" />
|
||||
</platform>
|
||||
|
||||
<!-- ubuntu -->
|
||||
<platform name="ubuntu">
|
||||
<header-file src="src/ubuntu/splashscreen.h" />
|
||||
<source-file src="src/ubuntu/splashscreen.cpp" />
|
||||
</platform>
|
||||
|
||||
<!-- ios -->
|
||||
<platform name="ios">
|
||||
<config-file target="config.xml" parent="/*">
|
||||
@@ -83,35 +66,6 @@
|
||||
<framework src="CoreGraphics.framework" />
|
||||
</platform>
|
||||
|
||||
<!-- blackberry10 -->
|
||||
<platform name="blackberry10">
|
||||
<source-file src="src/blackberry10/index.js" target-dir="SplashScreen" />
|
||||
<config-file target="www/config.xml" parent="/widget">
|
||||
<feature name="SplashScreen" value="SplashScreen"/>
|
||||
</config-file>
|
||||
</platform>
|
||||
|
||||
<!-- wp8 -->
|
||||
<platform name="wp8">
|
||||
<config-file target="config.xml" parent="/*">
|
||||
<feature name="SplashScreen">
|
||||
<param name="wp-package" value="SplashScreen"/>
|
||||
<param name="onload" value="true"/>
|
||||
</feature>
|
||||
</config-file>
|
||||
|
||||
<source-file src="src/wp/SplashScreen.cs" />
|
||||
<source-file src="src/wp/ResolutionHelper.cs" />
|
||||
|
||||
</platform>
|
||||
|
||||
<!-- windows8 -->
|
||||
<platform name="windows8">
|
||||
<js-module src="www/windows/SplashScreenProxy.js" name="SplashScreenProxy">
|
||||
<runs />
|
||||
</js-module>
|
||||
</platform>
|
||||
|
||||
<!-- windows -->
|
||||
<platform name="windows">
|
||||
<js-module src="www/windows/SplashScreenProxy.js" name="SplashScreenProxy">
|
||||
@@ -119,13 +73,6 @@
|
||||
</js-module>
|
||||
</platform>
|
||||
|
||||
<!-- tizen -->
|
||||
<platform name="tizen">
|
||||
<js-module src="src/tizen/SplashScreenProxy.js" name="SplashScreenProxy">
|
||||
<runs />
|
||||
</js-module>
|
||||
</platform>
|
||||
|
||||
<!-- browser -->
|
||||
<platform name="browser">
|
||||
<js-module src="src/browser/SplashScreenProxy.js" name="SplashScreenProxy">
|
||||
|
||||
@@ -24,6 +24,7 @@ import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.res.Configuration;
|
||||
import android.content.res.ColorStateList;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.os.Handler;
|
||||
@@ -77,6 +78,18 @@ public class SplashScreen extends CordovaPlugin {
|
||||
}
|
||||
}
|
||||
|
||||
private int getSplashId() {
|
||||
int drawableId = 0;
|
||||
String splashResource = preferences.getString("SplashScreen", "screen");
|
||||
if (splashResource != null) {
|
||||
drawableId = cordova.getActivity().getResources().getIdentifier(splashResource, "drawable", cordova.getActivity().getClass().getPackage().getName());
|
||||
if (drawableId == 0) {
|
||||
drawableId = cordova.getActivity().getResources().getIdentifier(splashResource, "drawable", cordova.getActivity().getPackageName());
|
||||
}
|
||||
}
|
||||
return drawableId;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void pluginInitialize() {
|
||||
if (HAS_BUILT_IN_SPLASH_SCREEN) {
|
||||
@@ -90,17 +103,7 @@ public class SplashScreen extends CordovaPlugin {
|
||||
getView().setVisibility(View.INVISIBLE);
|
||||
}
|
||||
});
|
||||
int drawableId = preferences.getInteger("SplashDrawableId", 0);
|
||||
if (drawableId == 0) {
|
||||
String splashResource = preferences.getString("SplashScreen", "screen");
|
||||
if (splashResource != null) {
|
||||
drawableId = cordova.getActivity().getResources().getIdentifier(splashResource, "drawable", cordova.getActivity().getClass().getPackage().getName());
|
||||
if (drawableId == 0) {
|
||||
drawableId = cordova.getActivity().getResources().getIdentifier(splashResource, "drawable", cordova.getActivity().getPackageName());
|
||||
}
|
||||
preferences.set("SplashDrawableId", drawableId);
|
||||
}
|
||||
}
|
||||
int drawableId = getSplashId();
|
||||
|
||||
// Save initial orientation.
|
||||
orientation = cordova.getActivity().getResources().getConfiguration().orientation;
|
||||
@@ -205,7 +208,7 @@ public class SplashScreen extends CordovaPlugin {
|
||||
|
||||
// Splash drawable may change with orientation, so reload it.
|
||||
if (splashImageView != null) {
|
||||
int drawableId = preferences.getInteger("SplashDrawableId", 0);
|
||||
int drawableId = getSplashId();
|
||||
if (drawableId != 0) {
|
||||
splashImageView.setImageDrawable(cordova.getActivity().getResources().getDrawable(drawableId));
|
||||
}
|
||||
@@ -263,13 +266,17 @@ public class SplashScreen extends CordovaPlugin {
|
||||
@SuppressWarnings("deprecation")
|
||||
private void showSplashScreen(final boolean hideAfterDelay) {
|
||||
final int splashscreenTime = preferences.getInteger("SplashScreenDelay", DEFAULT_SPLASHSCREEN_DURATION);
|
||||
final int drawableId = preferences.getInteger("SplashDrawableId", 0);
|
||||
final int drawableId = getSplashId();
|
||||
|
||||
final int fadeSplashScreenDuration = getFadeDuration();
|
||||
final int effectiveSplashDuration = Math.max(0, splashscreenTime - fadeSplashScreenDuration);
|
||||
|
||||
lastHideAfterDelay = hideAfterDelay;
|
||||
|
||||
// Prevent to show the splash dialog if the activity is in the process of finishing
|
||||
if (cordova.getActivity().isFinishing()) {
|
||||
return;
|
||||
}
|
||||
// If the splash dialog is showing don't try to show it again
|
||||
if (splashDialog != null && splashDialog.isShowing()) {
|
||||
return;
|
||||
@@ -361,6 +368,27 @@ public class SplashScreen extends CordovaPlugin {
|
||||
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
|
||||
progressBar.setLayoutParams(layoutParams);
|
||||
|
||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
|
||||
String colorName = preferences.getString("SplashScreenSpinnerColor", null);
|
||||
if(colorName != null){
|
||||
int[][] states = new int[][] {
|
||||
new int[] { android.R.attr.state_enabled}, // enabled
|
||||
new int[] {-android.R.attr.state_enabled}, // disabled
|
||||
new int[] {-android.R.attr.state_checked}, // unchecked
|
||||
new int[] { android.R.attr.state_pressed} // pressed
|
||||
};
|
||||
int progressBarColor = Color.parseColor(colorName);
|
||||
int[] colors = new int[] {
|
||||
progressBarColor,
|
||||
progressBarColor,
|
||||
progressBarColor,
|
||||
progressBarColor
|
||||
};
|
||||
ColorStateList colorStateList = new ColorStateList(states, colors);
|
||||
progressBar.setIndeterminateTintList(colorStateList);
|
||||
}
|
||||
}
|
||||
|
||||
centeredLayout.addView(progressBar);
|
||||
|
||||
spinnerDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
/*
|
||||
* Copyright 2013 Research In Motion Limited.
|
||||
*
|
||||
* Licensed 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.
|
||||
*/
|
||||
|
||||
/* global PluginResult */
|
||||
|
||||
module.exports = {
|
||||
show: function (success, fail, args, env) {
|
||||
var result = new PluginResult(args, env);
|
||||
result.error("Not supported on platform", false);
|
||||
},
|
||||
|
||||
hide: function (success, fail, args, env) {
|
||||
var result = new PluginResult(args, env);
|
||||
window.qnx.webplatform.getApplication().windowVisible = true;
|
||||
result.ok(undefined, false);
|
||||
}
|
||||
};
|
||||
@@ -31,6 +31,7 @@ var splashScreenDelay = 3000; // in milliseconds
|
||||
var showSplashScreen = true; // show splashcreen by default
|
||||
var cordova = require('cordova');
|
||||
var configHelper = cordova.require('cordova/confighelper');
|
||||
var autoHideSplashScreen = true;
|
||||
|
||||
function updateImageLocation() {
|
||||
position.width = Math.min(splashImageWidth, window.innerWidth);
|
||||
@@ -66,6 +67,7 @@ var SplashScreen = {
|
||||
localSplash = document.createElement("div");
|
||||
localSplash.style.backgroundColor = bgColor;
|
||||
localSplash.style.position = "absolute";
|
||||
localSplash.style["z-index"] = "99999";
|
||||
|
||||
localSplashImage = document.createElement("img");
|
||||
localSplashImage.src = imageSrc;
|
||||
@@ -75,13 +77,34 @@ var SplashScreen = {
|
||||
|
||||
localSplash.appendChild(localSplashImage);
|
||||
document.body.appendChild(localSplash);
|
||||
|
||||
// deviceready fires earlier than the plugin init on cold-start
|
||||
if (SplashScreen.shouldHideImmediately) {
|
||||
SplashScreen.shouldHideImmediately = false;
|
||||
window.setTimeout(function () {
|
||||
SplashScreen.hide();
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
},
|
||||
hide: function () {
|
||||
if(localSplash) {
|
||||
window.removeEventListener("resize", onResize, false);
|
||||
document.body.removeChild(localSplash);
|
||||
var innerLocalSplash = localSplash;
|
||||
localSplash = null;
|
||||
window.removeEventListener("resize", onResize, false);
|
||||
|
||||
innerLocalSplash.style.opacity = '0';
|
||||
innerLocalSplash.style["-webkit-transition"] = "opacity 1s ease-in-out";
|
||||
innerLocalSplash.style["-moz-transition"] = "opacity 1s ease-in-out";
|
||||
innerLocalSplash.style["-ms-transition"] = "opacity 1s ease-in-out";
|
||||
innerLocalSplash.style["-o-transition"] = "opacity 1s ease-in-out";
|
||||
|
||||
window.setTimeout(function () {
|
||||
document.body.removeChild(innerLocalSplash);
|
||||
innerLocalSplash = null;
|
||||
}, 1000);
|
||||
} else {
|
||||
SplashScreen.shouldHideImmediately = true;
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -97,12 +120,16 @@ function readPreferencesFromCfg(cfg) {
|
||||
}
|
||||
|
||||
splashScreenDelay = cfg.getPreferenceValue('SplashScreenDelay') || splashScreenDelay;
|
||||
splashScreenDelay = parseInt(splashScreenDelay, 10);
|
||||
|
||||
imageSrc = cfg.getPreferenceValue('SplashScreen') || imageSrc;
|
||||
bgColor = cfg.getPreferenceValue('SplashScreenBackgroundColor') || bgColor;
|
||||
splashImageWidth = cfg.getPreferenceValue('SplashScreenWidth') || splashImageWidth;
|
||||
splashImageHeight = cfg.getPreferenceValue('SplashScreenHeight') || splashImageHeight;
|
||||
autoHideSplashScreen = cfg.getPreferenceValue('AutoHideSplashScreen') || autoHideSplashScreen;
|
||||
autoHideSplashScreen = (autoHideSplashScreen === true || autoHideSplashScreen.toLowerCase() === 'true');
|
||||
} catch(e) {
|
||||
var msg = '[Browser][SplashScreen] Error occured on loading preferences from config.xml: ' + JSON.stringify(e);
|
||||
var msg = '[Browser][SplashScreen] Error occurred on loading preferences from config.xml: ' + JSON.stringify(e);
|
||||
console.error(msg);
|
||||
}
|
||||
}
|
||||
@@ -121,12 +148,17 @@ function showAndHide() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Tries to read config.xml and override default properties and then shows and hides splashcreen if it is enabled.
|
||||
* Tries to read config.xml and override default properties and then shows and hides splashscreen if it is enabled.
|
||||
*/
|
||||
(function initAndShow() {
|
||||
configHelper.readConfig(function(config) {
|
||||
readPreferencesFromCfg(config);
|
||||
showAndHide();
|
||||
if (autoHideSplashScreen) {
|
||||
showAndHide();
|
||||
} else {
|
||||
SplashScreen.show();
|
||||
}
|
||||
|
||||
}, function(err) {
|
||||
console.error(err);
|
||||
});
|
||||
|
||||
@@ -28,6 +28,7 @@ typedef struct {
|
||||
BOOL iPhone6;
|
||||
BOOL iPhone6Plus;
|
||||
BOOL retina;
|
||||
BOOL iPhoneX;
|
||||
|
||||
} CDV_iOSDevice;
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
// Determine whether rotation should be enabled for this device
|
||||
// Per iOS HIG, landscape is only supported on iPad and iPhone 6+
|
||||
CDV_iOSDevice device = [self getCurrentDevice];
|
||||
BOOL autorotateValue = (device.iPad || device.iPhone6Plus) ?
|
||||
BOOL autorotateValue = (device.iPad || device.iPhone6Plus || device.iPhoneX) ?
|
||||
[(CDVViewController *)self.viewController shouldAutorotateDefaultValue] :
|
||||
NO;
|
||||
|
||||
@@ -174,6 +174,7 @@
|
||||
// this is appropriate for detecting the runtime screen environment
|
||||
device.iPhone6 = (device.iPhone && limit == 667.0);
|
||||
device.iPhone6Plus = (device.iPhone && limit == 736.0);
|
||||
device.iPhoneX = (device.iPhone && limit == 812.0);
|
||||
|
||||
return device;
|
||||
}
|
||||
@@ -222,8 +223,12 @@
|
||||
imageName = [imageName stringByAppendingString:@"-700"];
|
||||
} else if(device.iPhone6) {
|
||||
imageName = [imageName stringByAppendingString:@"-800"];
|
||||
} else if(device.iPhone6Plus) {
|
||||
imageName = [imageName stringByAppendingString:@"-800"];
|
||||
} else if(device.iPhone6Plus || device.iPhoneX ) {
|
||||
if(device.iPhone6Plus) {
|
||||
imageName = [imageName stringByAppendingString:@"-800"];
|
||||
} else {
|
||||
imageName = [imageName stringByAppendingString:@"-1100"];
|
||||
}
|
||||
if (currentOrientation == UIInterfaceOrientationPortrait || currentOrientation == UIInterfaceOrientationPortraitUpsideDown)
|
||||
{
|
||||
imageName = [imageName stringByAppendingString:@"-Portrait"];
|
||||
@@ -239,7 +244,7 @@
|
||||
{ // does not support landscape
|
||||
imageName = [imageName stringByAppendingString:@"-667h"];
|
||||
}
|
||||
else if (device.iPhone6Plus)
|
||||
else if (device.iPhone6Plus || device.iPhoneX)
|
||||
{ // supports landscape
|
||||
if (isOrientationLocked)
|
||||
{
|
||||
@@ -257,8 +262,11 @@
|
||||
break;
|
||||
}
|
||||
}
|
||||
imageName = [imageName stringByAppendingString:@"-736h"];
|
||||
|
||||
if (device.iPhoneX) {
|
||||
imageName = [imageName stringByAppendingString:@"-2436h"];
|
||||
} else {
|
||||
imageName = [imageName stringByAppendingString:@"-736h"];
|
||||
}
|
||||
}
|
||||
else if (device.iPad)
|
||||
{ // supports landscape
|
||||
@@ -370,7 +378,7 @@
|
||||
* correctly.
|
||||
*/
|
||||
CDV_iOSDevice device = [self getCurrentDevice];
|
||||
if (UIInterfaceOrientationIsLandscape(orientation) && !device.iPhone6Plus && !device.iPad)
|
||||
if (UIInterfaceOrientationIsLandscape(orientation) && !device.iPhone6Plus && !device.iPad && !device.iPhoneX)
|
||||
{
|
||||
imgTransform = CGAffineTransformMakeRotation(M_PI / 2);
|
||||
imgBounds.size = CGSizeMake(imgBounds.size.height, imgBounds.size.width);
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
/*
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
( function() {
|
||||
|
||||
var win = null;
|
||||
|
||||
module.exports = {
|
||||
show: function() {
|
||||
if ( win === null ) {
|
||||
win = window.open('splashscreen.html');
|
||||
}
|
||||
},
|
||||
|
||||
hide: function() {
|
||||
if ( win !== null ) {
|
||||
win.close();
|
||||
win = null;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
require("cordova/tizen/commandProxy").add("SplashScreen", module.exports);
|
||||
|
||||
})();
|
||||
@@ -1,42 +0,0 @@
|
||||
/*
|
||||
*
|
||||
* Copyright 2013 Canonical Ltd.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <QQuickItem>
|
||||
|
||||
#include "splashscreen.h"
|
||||
#include <cordova.h>
|
||||
|
||||
#define SPLASHSCREEN_STATE_NAME "splashscreen"
|
||||
|
||||
Splashscreen::Splashscreen(Cordova *cordova): CPlugin(cordova) {
|
||||
}
|
||||
|
||||
void Splashscreen::show(int, int) {
|
||||
m_cordova->rootObject()->setProperty("splashscreenPath", m_cordova->getSplashscreenPath());
|
||||
|
||||
m_cordova->pushViewState(SPLASHSCREEN_STATE_NAME);
|
||||
}
|
||||
|
||||
void Splashscreen::hide(int, int) {
|
||||
m_cordova->popViewState(SPLASHSCREEN_STATE_NAME);
|
||||
}
|
||||
@@ -1,52 +0,0 @@
|
||||
/*
|
||||
*
|
||||
* Copyright 2013 Canonical Ltd.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef SPLASHSCREEN_H
|
||||
#define SPLASHSCREEN_H
|
||||
|
||||
#include <QtCore>
|
||||
#include <cplugin.h>
|
||||
|
||||
class Splashscreen: public CPlugin {
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit Splashscreen(Cordova *cordova);
|
||||
|
||||
virtual const QString fullName() override {
|
||||
return Splashscreen::fullID();
|
||||
}
|
||||
|
||||
virtual const QString shortName() override {
|
||||
return "SplashScreen";
|
||||
}
|
||||
|
||||
static const QString fullID() {
|
||||
return "SplashScreen";
|
||||
}
|
||||
|
||||
public slots:
|
||||
void show(int, int);
|
||||
void hide(int, int);
|
||||
};
|
||||
|
||||
#endif // SPLASHSCREEN_H
|
||||
14
tests/package.json
Normal file
14
tests/package.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"name": "cordova-plugin-splashscreen-tests",
|
||||
"version": "4.0.3-dev",
|
||||
"description": "",
|
||||
"cordova": {
|
||||
"id": "cordova-plugin-splashscreen-tests",
|
||||
"platforms": []
|
||||
},
|
||||
"keywords": [
|
||||
"ecosystem:cordova"
|
||||
],
|
||||
"author": "",
|
||||
"license": "Apache 2.0"
|
||||
}
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
|
||||
id="cordova-plugin-splashscreen-tests"
|
||||
version="4.0.2">
|
||||
version="5.0.2">
|
||||
<name>Cordova Splashscreen Plugin Tests</name>
|
||||
<license>Apache 2.0</license>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user