mirror of
https://github.com/apache/cordova-plugin-splashscreen.git
synced 2026-02-05 00:01:30 +08:00
Compare commits
32 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0f4a9d3f18 | ||
|
|
50318213c4 | ||
|
|
34bc1dbf16 | ||
|
|
3b2e9e5912 | ||
|
|
d7841c7ec9 | ||
|
|
1e67606c60 | ||
|
|
fa3b665223 | ||
|
|
875ccbf5bc | ||
|
|
ccb3c2f453 | ||
|
|
cfc6d74506 | ||
|
|
78d8ef94eb | ||
|
|
e2239306d6 | ||
|
|
ea3f7f7b07 | ||
|
|
d348168e08 | ||
|
|
848bd487e0 | ||
|
|
d034ceee6e | ||
|
|
93aaf0529e | ||
|
|
60fb0621ae | ||
|
|
7eec7c8b43 | ||
|
|
3a79663680 | ||
|
|
b83392df21 | ||
|
|
2b5187b909 | ||
|
|
fb0764c528 | ||
|
|
9a69f12ada | ||
|
|
9bd0ec7091 | ||
|
|
f675376de1 | ||
|
|
9ea2d4c86f | ||
|
|
5aff6590f8 | ||
|
|
f4a92d21ff | ||
|
|
0916db61b4 | ||
|
|
ac23964ac6 | ||
|
|
57ad3602f4 |
13
.travis.yml
13
.travis.yml
@@ -1,13 +0,0 @@
|
||||
language: objective-c
|
||||
git:
|
||||
depth: 2
|
||||
node_js:
|
||||
- "0.10"
|
||||
install:
|
||||
- echo -e "Host github.com\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
|
||||
- cd ..
|
||||
- npm install -g cordova-paramedic
|
||||
- npm install -g cordova
|
||||
- npm install -g ios-sim
|
||||
script:
|
||||
- cordova-paramedic --platform ios --plugin ${TRAVIS_BUILD_DIR}
|
||||
@@ -27,7 +27,7 @@ There are multiple ways to contribute: report bugs, improve the docs, and
|
||||
contribute code.
|
||||
|
||||
For instructions on this, start with the
|
||||
[contribution overview](http://cordova.apache.org/#contribute).
|
||||
[contribution overview](http://cordova.apache.org/contribute/).
|
||||
|
||||
The details are explained there, but the important items are:
|
||||
- Sign and submit an Apache ICLA (Contributor License Agreement).
|
||||
|
||||
66
README.md
66
README.md
@@ -19,14 +19,15 @@
|
||||
|
||||
# cordova-plugin-splashscreen
|
||||
|
||||
[](https://travis-ci.org/apache/cordova-plugin-splashscreen)
|
||||
|
||||
This plugin displays and hides a splash screen during application launch.
|
||||
|
||||
## Installation
|
||||
:warning: Report issues on the [Apache Cordova issue tracker](https://issues.apache.org/jira/issues/?jql=project%20%3D%20CB%20AND%20status%20in%20%28Open%2C%20%22In%20Progress%22%2C%20Reopened%29%20AND%20resolution%20%3D%20Unresolved%20AND%20component%20%3D%20%22Plugin%20Splashscreen%22%20ORDER%20BY%20priority%20DESC%2C%20summary%20ASC%2C%20updatedDate%20DESC)
|
||||
|
||||
## Installation
|
||||
|
||||
// npm hosted (new) id
|
||||
cordova plugin add cordova-plugin-splashscreen
|
||||
|
||||
// you may also install directly from this repo
|
||||
cordova plugin add https://github.com/apache/cordova-plugin-splashscreen.git
|
||||
|
||||
@@ -41,19 +42,31 @@ This plugin displays and hides a splash screen during application launch.
|
||||
- Windows
|
||||
- Browser
|
||||
|
||||
## Preferences
|
||||
|
||||
## Methods
|
||||
#### config.xml
|
||||
|
||||
- __SplashScreen__ (string). The resource name which is used for the displaying splash screen. Different platforms use values for this.
|
||||
|
||||
<preference name="SplashScreen" value="resourcename" />
|
||||
|
||||
- __AutoHideSplashScreen__ (boolean, default to `true`). Indicates wherether hide splash screen automatically or not. Splash screen hidden after amount of time specified in the `SplashScreenDelay` preference.
|
||||
|
||||
<preference name="AutoHideSplashScreen" value="true" />
|
||||
|
||||
- __SplashScreenDelay__ (number, default to 3000). Amount of time in milliseconds to wait before automatically hide splash screen.
|
||||
|
||||
<preference name="SplashScreenDelay" value="3000" />
|
||||
|
||||
- splashscreen.show
|
||||
- splashscreen.hide
|
||||
|
||||
### Android Quirks
|
||||
|
||||
In your `config.xml`, you need to add the following preferences:
|
||||
|
||||
<preference name="SplashScreen" value="foo" />
|
||||
<preference name="SplashScreenDelay" value="10000" />
|
||||
<preference name="SplashScreenDelay" value="3000" />
|
||||
<preference name="SplashMaintainAspectRatio" value="true|false" />
|
||||
<preference name="SplashShowOnlyFirstTime" value="true|false" />
|
||||
|
||||
Where foo is the name of the splashscreen file, preferably a 9 patch file. Make sure to add your splashcreen files to your res/xml directory under the appropriate folders. The second parameter represents how long the splashscreen will appear in milliseconds. It defaults to 3000 ms. See [Icons and Splash Screens](http://cordova.apache.org/docs/en/edge/config_ref_images.md.html)
|
||||
for more information.
|
||||
@@ -62,13 +75,15 @@ for more information.
|
||||
|
||||
The plugin reloads splash drawable whenever orientation changes, so you can specify different drawables for portrait and landscape orientations.
|
||||
|
||||
"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).
|
||||
|
||||
### Browser Quirks
|
||||
|
||||
You can use the following preferences in your `config.xml`:
|
||||
|
||||
<platform name="browser">
|
||||
<preference name="SplashScreen" value="images/browser/splashscreen.jpg" /> <!-- defaults to "img/logo.png" -->
|
||||
<preference name="SplashScreenDelay" value="10000" /> <!-- defaults to "3000" -->
|
||||
<preference name="SplashScreenDelay" value="3000" /> <!-- defaults to "3000" -->
|
||||
<preference name="SplashScreenBackgroundColor" value="green" /> <!-- defaults to "#464646" -->
|
||||
<preference name="ShowSplashScreen" value="false" /> <!-- defaults to "true" -->
|
||||
<preference name="SplashScreenWidth" value="600" /> <!-- defaults to "170" -->
|
||||
@@ -76,7 +91,7 @@ You can use the following preferences in your `config.xml`:
|
||||
</platform>
|
||||
|
||||
|
||||
### iOS Quirks
|
||||
### Android and iOS Quirks
|
||||
|
||||
- `FadeSplashScreen` (boolean, defaults to `true`): Set to `false` to
|
||||
prevent the splash screen from fading in and out when its display
|
||||
@@ -84,16 +99,42 @@ You can use the following preferences in your `config.xml`:
|
||||
|
||||
<preference name="FadeSplashScreen" value="false"/>
|
||||
|
||||
- `FadeSplashScreenDuration` (float, defaults to `2`): Specifies the
|
||||
number of seconds for the splash screen fade effect to execute.
|
||||
- `FadeSplashScreenDuration` (float, defaults to `3000`): Specifies the
|
||||
number of milliseconds for the splash screen fade effect to execute.
|
||||
|
||||
<preference name="FadeSplashScreenDuration" value="4"/>
|
||||
<preference name="FadeSplashScreenDuration" value="3000"/>
|
||||
|
||||
Note also that this value used to be seconds, and not milliseconds, so values less than 30 will still be treated as seconds. ( Consider this a deprecated patch that will disapear in some future version. )
|
||||
|
||||
_Note_: `FadeSplashScreenDuration` is included into `SplashScreenDelay`, for example if you have `<preference name="SplashScreenDelay" value="3000" />` and `<preference name="FadeSplashScreenDuration" value="1000"/>` defined in `config.xml`:
|
||||
|
||||
- 00:00 - splashscreen is shown
|
||||
- 00:02 - fading has started
|
||||
- 00:03 - splashscreen is hidden
|
||||
|
||||
Turning the fading off via `<preference name="FadeSplashScreen" value="false"/>` technically means fading duration to be `0` so that in this example the overall splash delay will still be 3 seconds.
|
||||
|
||||
_Note_: This only applies to the app startup - you need to take the fading timeout into account when manually showing/hiding the splashscreen in the code:
|
||||
|
||||
```javascript
|
||||
navigator.splashscreen.show();
|
||||
window.setTimeout(function () {
|
||||
navigator.splashscreen.hide();
|
||||
}, splashDuration - fadeDuration);
|
||||
```
|
||||
|
||||
### iOS Quirks
|
||||
|
||||
- `ShowSplashScreenSpinner` (boolean, defaults to `true`): Set to `false`
|
||||
to hide the splash-screen spinner.
|
||||
|
||||
<preference name="ShowSplashScreenSpinner" value="false"/>
|
||||
|
||||
## Methods
|
||||
|
||||
- splashscreen.show
|
||||
- splashscreen.hide
|
||||
|
||||
## splashscreen.hide
|
||||
|
||||
Dismiss the splash screen.
|
||||
@@ -128,4 +169,3 @@ event. See [Icons and Splash Screens](http://cordova.apache.org/docs/en/edge/con
|
||||
for more information on doing this configuration. For this reason, it is
|
||||
unlikely you need to call `navigator.splashscreen.show()` to make the splash
|
||||
screen visible for app startup.
|
||||
|
||||
|
||||
214
RELEASENOTES.md
214
RELEASENOTES.md
@@ -20,43 +20,95 @@
|
||||
-->
|
||||
# Release Notes
|
||||
|
||||
### 0.2.2 (Sept 25, 2013)
|
||||
* CB-4889 bumping&resetting version
|
||||
* CB-4889 renaming org.apache.cordova.core.splashscreen to org.apache.cordova.splashscreen
|
||||
* Rename CHANGELOG.md -> RELEASENOTES.md
|
||||
* [CB-4806] Update splashscreen image bounds for iOS 7
|
||||
* [CB-4752] Incremented plugin version on dev branch.
|
||||
### 3.1.0 (Jan 15, 2016)
|
||||
* CB-9538 Implementing `FadeSplashScreen` feature for **Android**
|
||||
* CB-9240 Cordova splash screen plugin **iPad** landscape mode issue
|
||||
* CB-10263 Fix splashscreen plugin filenames for Asset Catalog
|
||||
* CB-9374 **Android** add `SplashShowOnlyFirstTime` as preference
|
||||
* CB-10244 Don't rotate the **iPhone 6 Plus** splash
|
||||
* CB-9043 Fix the **ios** splashscreen being deformed on orientation change
|
||||
* CB-10079 Splashscreen plugin does not honor `SplashScreenDelay` on **iOS**
|
||||
* CB-10231 Fix `FadeSplashScreen` to default to true on **iOS**
|
||||
|
||||
### 0.2.3 (Oct 9, 2013)
|
||||
* [CB-4806] Re-fix Update splashscreen image bounds for iOS 7
|
||||
* [CB-4934] plugin-splashscreen should not show by default on Windows8
|
||||
* [CB-4929] plugin-splashscreen not loading proxy windows8
|
||||
* [CB-4915] Incremented plugin version on dev branch.
|
||||
### 3.0.0 (Nov 18, 2015)
|
||||
* [CB-10035](https://issues.apache.org/jira/browse/CB-10035) Updated `RELEASENOTES` to be newest to oldest
|
||||
* Fixing contribute link.
|
||||
* [CB-9750](https://issues.apache.org/jira/browse/CB-9750) `FadeSplashDuration` is now in `msecs`
|
||||
* [CB-8875](https://issues.apache.org/jira/browse/CB-8875) `FadeSplashScreen` was not fading
|
||||
* [CB-9467](https://issues.apache.org/jira/browse/CB-9467) SplashScreen does not show any image in hosted app on **Windows 10**
|
||||
* [CB-7282](https://issues.apache.org/jira/browse/CB-7282) Document `AutoHideSplashScreenpreference`
|
||||
* [CB-9327](https://issues.apache.org/jira/browse/CB-9327) - Splashscreen not receiving `CDVPageLoadNotification`
|
||||
* WP8: Avoid config `value` of a wrong element.
|
||||
|
||||
### 0.2.4 (Oct 28, 2013)
|
||||
* CB-5128: add repo + issue tag to plugin.xml for splashscreen plugin
|
||||
* [CB-5010] Incremented plugin version on dev branch.
|
||||
### 2.1.0 (Jun 17, 2015)
|
||||
* added missing license headers
|
||||
* [CB-9128](https://issues.apache.org/jira/browse/CB-9128) cordova-plugin-splashscreen documentation translation: cordova-plugin-splashscreen
|
||||
* fix npm md issue
|
||||
* Fixed iOS unit tests.
|
||||
* [CB-3562](https://issues.apache.org/jira/browse/CB-3562): Disable screen rotation for iPhone when splash screen is shown. (closes #47)
|
||||
* [CB-8988](https://issues.apache.org/jira/browse/CB-8988): Fix rotation on iOS/iPad (closes #46)
|
||||
* [CB-8904](https://issues.apache.org/jira/browse/CB-8904): Don't reset the static variable when it's destroyed, otherwise we might as well just have a member variable
|
||||
* Removed wp7 from plugin.xml and package.json
|
||||
* [CB-8750](https://issues.apache.org/jira/browse/CB-8750) [wp8]: Rewrite resoultion helper
|
||||
* [CB-8750](https://issues.apache.org/jira/browse/CB-8750) [wp8]: Allow resolution-specific splashscreen images
|
||||
* [CB-8758](https://issues.apache.org/jira/browse/CB-8758) [wp8]: UnauthorizedAccessException on hide()
|
||||
|
||||
### 0.2.5 (Dec 4, 2013)
|
||||
* add ubuntu platform
|
||||
* Added amazon-fireos platform. Change to use amazon-fireos as a platform if the user agent string contains 'cordova-amazon-fireos'
|
||||
* CB-5124 - Remove splashscreen config.xml values from iOS Configuration Docs, move to plugin docs
|
||||
### 2.0.0 (Apr 15, 2015)
|
||||
* give users a way to install the bleeding edge.
|
||||
* [CB-8746](https://issues.apache.org/jira/browse/CB-8746) gave plugin major version bump
|
||||
* [CB-8797](https://issues.apache.org/jira/browse/CB-8797) - Splashscreen preferences FadeSplashScreenDuration and FadeSplashScreen (iOS) are missing
|
||||
* [CB-8836](https://issues.apache.org/jira/browse/CB-8836) - Crashes after animating splashscreen
|
||||
* [CB-8753](https://issues.apache.org/jira/browse/CB-8753) android: Fix missing import in previous commit
|
||||
* [CB-8753](https://issues.apache.org/jira/browse/CB-8753) android: Adds `SplashMaintainAspectRatio` preference (close #43)
|
||||
* [CB-8683](https://issues.apache.org/jira/browse/CB-8683) changed plugin-id to pacakge-name
|
||||
* [CB-8653](https://issues.apache.org/jira/browse/CB-8653) properly updated translated docs to use new id
|
||||
* [CB-8653](https://issues.apache.org/jira/browse/CB-8653) updated translated docs to use new id
|
||||
* [CB-8345](https://issues.apache.org/jira/browse/CB-8345) Make default for splashscreen resource "screen" (which is what template and CLI assume it to be)
|
||||
* Revert "CB-8345 android: Make "splash" the default resource ID instead of null"
|
||||
* Use TRAVIS_BUILD_DIR, install paramedic by npm
|
||||
* [CB-8345](https://issues.apache.org/jira/browse/CB-8345) android: Make "splash" the default resource ID instead of null
|
||||
* docs: added Windows to supported platforms
|
||||
* [CB-7964](https://issues.apache.org/jira/browse/CB-7964) Add cordova-plugin-splashscreen support for browser platform
|
||||
* [CB-8653](https://issues.apache.org/jira/browse/CB-8653) Updated Readme
|
||||
* [wp8] oops, Added back config parse result checks
|
||||
* [WP8] code cleanup, minor refactors, comments to clarify some stuff.
|
||||
* Extend WP8 Splash Screen to respect SplashScreen and SplashScreenDelay preferences from config file
|
||||
* [CB-8574](https://issues.apache.org/jira/browse/CB-8574) Integrate TravisCI
|
||||
* [CB-8438](https://issues.apache.org/jira/browse/CB-8438) cordova-plugin-splashscreen documentation translation: cordova-plugin-splashscreen
|
||||
* [CB-8538](https://issues.apache.org/jira/browse/CB-8538) Added package.json file
|
||||
* [CB-8397](https://issues.apache.org/jira/browse/CB-8397) Add support to 'windows' for showing the Windows Phone splashscreen
|
||||
|
||||
### 0.2.6 (Jan 02, 2014)
|
||||
* CB-5658 Add doc/index.md for Splashscreen plugin
|
||||
* Handle error when splash image is missing.
|
||||
### 1.0.0 (Feb 04, 2015)
|
||||
* [CB-8351](https://issues.apache.org/jira/browse/CB-8351) ios: Stop using deprecated IsIpad macro
|
||||
* [CB-3679](https://issues.apache.org/jira/browse/CB-3679) Add engine tag for Android >= 3.6.0 due to use of `preferences`
|
||||
* [CB-3679](https://issues.apache.org/jira/browse/CB-3679) Make SplashScreen plugin compatible with cordova-android@4.0.x
|
||||
|
||||
### 0.2.7 (Feb 05, 2014)
|
||||
* [CB-3562] Fix aspect ratio on landscape-only iPhone applications
|
||||
* CB-4051 fix for splashscreen rotation problem
|
||||
### 0.3.5 (Dec 02, 2014)
|
||||
* [CB-7204](https://issues.apache.org/jira/browse/CB-7204) - Race condition when hiding and showing spinner (closes #21)
|
||||
* [CB-7700](https://issues.apache.org/jira/browse/CB-7700) cordova-plugin-splashscreen documentation translation: cordova-plugin-splashscreen
|
||||
|
||||
### 0.3.0 (Apr 17, 2014)
|
||||
* Add Tizen support to plugin
|
||||
* CB-6422: [windows8] use cordova/exec/proxy
|
||||
* CB-4051: [ios] - Re-fix - Splashscreen rotation problem (closes #13)
|
||||
* CB-6460: Update license headers
|
||||
* CB-6465: Add license headers to Tizen code
|
||||
* Add NOTICE file
|
||||
### 0.3.4 (Oct 03, 2014)
|
||||
* Finalized iOS splash screen (image name) tests. 176 tests in all, 44 for each type of device (iPad, iPhone, iPhone5, iPhone6, iPhone 6 Plus).
|
||||
* [CB-7633](https://issues.apache.org/jira/browse/CB-7633) - (Re-fix based on updated unit tests) iPhone 6 Plus support
|
||||
* Updated iOS tests for locked orientations
|
||||
* Added more iOS splash screen tests.
|
||||
* [CB-7633](https://issues.apache.org/jira/browse/CB-7633) - Add support for iPhone 6/6+
|
||||
* Added failing iPhone 6/6 Plus tests.
|
||||
* Added 'npm test'
|
||||
* [CB-7663](https://issues.apache.org/jira/browse/CB-7663) - iOS unit tests for splash screen
|
||||
* Properly formatted splashscreen preference docs.
|
||||
|
||||
### 0.3.3 (Sep 17, 2014)
|
||||
* [CB-7249](https://issues.apache.org/jira/browse/CB-7249) cordova-plugin-splashscreen documentation translation
|
||||
* Renamed test dir, added nested plugin.xml
|
||||
* added documentation for manual tests
|
||||
* [CB-7196](https://issues.apache.org/jira/browse/CB-7196) port splashscreen tests to framework
|
||||
|
||||
### 0.3.2 (Aug 06, 2014)
|
||||
* [CB-6127](https://issues.apache.org/jira/browse/CB-6127) Updated translations for docs
|
||||
* [CB-7041](https://issues.apache.org/jira/browse/CB-7041) ios: Fix image filename logic when setting the iPad splash screen
|
||||
* fixes Splashscreen crash on WP8
|
||||
* Remove outdated doc
|
||||
|
||||
### 0.3.1 (Jun 05, 2014)
|
||||
* documentation translation: cordova-plugin-splashscreen
|
||||
@@ -64,80 +116,48 @@
|
||||
* Lisa testing pulling in plugins for plugin: cordova-plugin-splashscreen
|
||||
* Lisa testing pulling in plugins for plugin: cordova-plugin-splashscreen
|
||||
* Lisa testing pulling in plugins for plugin: cordova-plugin-splashscreen
|
||||
* CB-6810 Add license to CONTRIBUTING.md
|
||||
* [CB-6810](https://issues.apache.org/jira/browse/CB-6810) Add license to CONTRIBUTING.md
|
||||
* [wp8] updated quirk for and combined iOS,WP8,BB10 quirks as they are all the same
|
||||
* [wp] implemented OnInit so splash screen can be shown before cordova page is loaded
|
||||
* [wp] plugin must be autoloaded for AutoHideSplashScreen preference to work
|
||||
* CB-6483 Use splash screen image from manifest on Windows8
|
||||
* CB-6491 add CONTRIBUTING.md
|
||||
* [CB-6483](https://issues.apache.org/jira/browse/CB-6483) Use splash screen image from manifest on Windows8
|
||||
* [CB-6491](https://issues.apache.org/jira/browse/CB-6491) add CONTRIBUTING.md
|
||||
* Revert "Merge branch 'tizen' of http://github.com/siovene/cordova-plugin-splashscreen"
|
||||
|
||||
### 0.3.2 (Aug 06, 2014)
|
||||
* CB-6127 Updated translations for docs
|
||||
* CB-7041 ios: Fix image filename logic when setting the iPad splash screen
|
||||
* fixes Splashscreen crash on WP8
|
||||
* Remove outdated doc
|
||||
### 0.3.0 (Apr 17, 2014)
|
||||
* Add Tizen support to plugin
|
||||
* [CB-6422](https://issues.apache.org/jira/browse/CB-6422): [windows8] use cordova/exec/proxy
|
||||
* [CB-4051](https://issues.apache.org/jira/browse/CB-4051): [ios] - Re-fix - Splashscreen rotation problem (closes #13)
|
||||
* [CB-6460](https://issues.apache.org/jira/browse/CB-6460): Update license headers
|
||||
* [CB-6465](https://issues.apache.org/jira/browse/CB-6465): Add license headers to Tizen code
|
||||
* Add NOTICE file
|
||||
|
||||
### 0.3.3 (Sep 17, 2014)
|
||||
* CB-7249 cordova-plugin-splashscreen documentation translation
|
||||
* Renamed test dir, added nested plugin.xml
|
||||
* added documentation for manual tests
|
||||
* CB-7196 port splashscreen tests to framework
|
||||
### 0.2.7 (Feb 05, 2014)
|
||||
* [CB-3562](https://issues.apache.org/jira/browse/CB-3562) Fix aspect ratio on landscape-only iPhone applications
|
||||
* [CB-4051](https://issues.apache.org/jira/browse/CB-4051) fix for splashscreen rotation problem
|
||||
|
||||
### 0.3.4 (Oct 03, 2014)
|
||||
* Finalized iOS splash screen (image name) tests. 176 tests in all, 44 for each type of device (iPad, iPhone, iPhone5, iPhone6, iPhone 6 Plus).
|
||||
* CB-7633 - (Re-fix based on updated unit tests) iPhone 6 Plus support
|
||||
* Updated iOS tests for locked orientations
|
||||
* Added more iOS splash screen tests.
|
||||
* CB-7633 - Add support for iPhone 6/6+
|
||||
* Added failing iPhone 6/6 Plus tests.
|
||||
* Added 'npm test'
|
||||
* CB-7663 - iOS unit tests for splash screen
|
||||
* Properly formatted splashscreen preference docs.
|
||||
### 0.2.6 (Jan 02, 2014)
|
||||
* [CB-5658](https://issues.apache.org/jira/browse/CB-5658) Add doc/index.md for Splashscreen plugin
|
||||
* Handle error when splash image is missing.
|
||||
|
||||
### 0.3.5 (Dec 02, 2014)
|
||||
* CB-7204 - Race condition when hiding and showing spinner (closes #21)
|
||||
* CB-7700 cordova-plugin-splashscreen documentation translation: cordova-plugin-splashscreen
|
||||
### 0.2.5 (Dec 4, 2013)
|
||||
* add ubuntu platform
|
||||
* Added amazon-fireos platform. Change to use amazon-fireos as a platform if the user agent string contains 'cordova-amazon-fireos'
|
||||
* [CB-5124](https://issues.apache.org/jira/browse/CB-5124) - Remove splashscreen config.xml values from iOS Configuration Docs, move to plugin docs
|
||||
|
||||
### 1.0.0 (Feb 04, 2015)
|
||||
* CB-8351 ios: Stop using deprecated IsIpad macro
|
||||
* CB-3679 Add engine tag for Android >= 3.6.0 due to use of `preferences`
|
||||
* CB-3679 Make SplashScreen plugin compatible with cordova-android@4.0.x
|
||||
### 0.2.4 (Oct 28, 2013)
|
||||
* [CB-5128](https://issues.apache.org/jira/browse/CB-5128): add repo + issue tag to plugin.xml for splashscreen plugin
|
||||
* [CB-5010](https://issues.apache.org/jira/browse/CB-5010) Incremented plugin version on dev branch.
|
||||
|
||||
### 2.0.0 (Apr 15, 2015)
|
||||
* give users a way to install the bleeding edge.
|
||||
* CB-8746 gave plugin major version bump
|
||||
* CB-8797 - Splashscreen preferences FadeSplashScreenDuration and FadeSplashScreen (iOS) are missing
|
||||
* CB-8836 - Crashes after animating splashscreen
|
||||
* CB-8753 android: Fix missing import in previous commit
|
||||
* CB-8753 android: Adds `SplashMaintainAspectRatio` preference (close #43)
|
||||
* CB-8683 changed plugin-id to pacakge-name
|
||||
* CB-8653 properly updated translated docs to use new id
|
||||
* CB-8653 updated translated docs to use new id
|
||||
* CB-8345 Make default for splashscreen resource "screen" (which is what template and CLI assume it to be)
|
||||
* Revert "CB-8345 android: Make "splash" the default resource ID instead of null"
|
||||
* Use TRAVIS_BUILD_DIR, install paramedic by npm
|
||||
* CB-8345 android: Make "splash" the default resource ID instead of null
|
||||
* docs: added Windows to supported platforms
|
||||
* CB-7964 Add cordova-plugin-splashscreen support for browser platform
|
||||
* CB-8653 Updated Readme
|
||||
* [wp8] oops, Added back config parse result checks
|
||||
* [WP8] code cleanup, minor refactors, comments to clarify some stuff.
|
||||
* Extend WP8 Splash Screen to respect SplashScreen and SplashScreenDelay preferences from config file
|
||||
* CB-8574 Integrate TravisCI
|
||||
* CB-8438 cordova-plugin-splashscreen documentation translation: cordova-plugin-splashscreen
|
||||
* CB-8538 Added package.json file
|
||||
* CB-8397 Add support to 'windows' for showing the Windows Phone splashscreen
|
||||
### 0.2.3 (Oct 9, 2013)
|
||||
* [CB-4806](https://issues.apache.org/jira/browse/CB-4806) Re-fix Update splashscreen image bounds for iOS 7
|
||||
* [CB-4934](https://issues.apache.org/jira/browse/CB-4934) plugin-splashscreen should not show by default on Windows8
|
||||
* [CB-4929](https://issues.apache.org/jira/browse/CB-4929) plugin-splashscreen not loading proxy windows8
|
||||
* [CB-4915](https://issues.apache.org/jira/browse/CB-4915) Incremented plugin version on dev branch.
|
||||
|
||||
### 2.1.0 (Jun 17, 2015)
|
||||
* added missing license headers
|
||||
* CB-9128 cordova-plugin-splashscreen documentation translation: cordova-plugin-splashscreen
|
||||
* fix npm md issue
|
||||
* Fixed iOS unit tests.
|
||||
* CB-3562: Disable screen rotation for iPhone when splash screen is shown. (closes #47)
|
||||
* CB-8988: Fix rotation on iOS/iPad (closes #46)
|
||||
* CB-8904: Don't reset the static variable when it's destroyed, otherwise we might as well just have a member variable
|
||||
* Removed wp7 from plugin.xml and package.json
|
||||
* CB-8750 [wp8]: Rewrite resoultion helper
|
||||
* CB-8750 [wp8]: Allow resolution-specific splashscreen images
|
||||
* CB-8758 [wp8]: UnauthorizedAccessException on hide()
|
||||
### 0.2.2 (Sept 25, 2013)
|
||||
* [CB-4889](https://issues.apache.org/jira/browse/CB-4889) bumping&resetting version
|
||||
* [CB-4889](https://issues.apache.org/jira/browse/CB-4889) renaming org.apache.cordova.core.splashscreen to org.apache.cordova.splashscreen
|
||||
* Rename CHANGELOG.md -> RELEASENOTES.md
|
||||
* [CB-4806](https://issues.apache.org/jira/browse/CB-4806) Update splashscreen image bounds for iOS 7
|
||||
* [CB-4752](https://issues.apache.org/jira/browse/CB-4752) Incremented plugin version on dev branch.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "cordova-plugin-splashscreen",
|
||||
"version": "2.1.0",
|
||||
"version": "3.1.0",
|
||||
"description": "Cordova Splashscreen Plugin",
|
||||
"cordova": {
|
||||
"id": "cordova-plugin-splashscreen",
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
|
||||
id="cordova-plugin-splashscreen"
|
||||
version="2.1.0">
|
||||
version="3.1.0">
|
||||
<name>Splashscreen</name>
|
||||
<description>Cordova Splashscreen Plugin</description>
|
||||
<license>Apache 2.0</license>
|
||||
|
||||
@@ -30,6 +30,9 @@ import android.view.Display;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup.LayoutParams;
|
||||
import android.view.WindowManager;
|
||||
import android.view.animation.Animation;
|
||||
import android.view.animation.AlphaAnimation;
|
||||
import android.view.animation.DecelerateInterpolator;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
@@ -44,6 +47,7 @@ public class SplashScreen extends CordovaPlugin {
|
||||
// Cordova 3.x.x has a copy of this plugin bundled with it (SplashScreenInternal.java).
|
||||
// Enable functionality only if running on 4.x.x.
|
||||
private static final boolean HAS_BUILT_IN_SPLASH_SCREEN = Integer.valueOf(CordovaWebView.CORDOVA_VERSION.split("\\.")[0]) < 4;
|
||||
private static final int DEFAULT_SPLASHSCREEN_DURATION = 3000;
|
||||
private static Dialog splashDialog;
|
||||
private static ProgressDialog spinnerDialog;
|
||||
private static boolean firstShow = true;
|
||||
@@ -89,7 +93,10 @@ public class SplashScreen extends CordovaPlugin {
|
||||
// Save initial orientation.
|
||||
orientation = cordova.getActivity().getResources().getConfiguration().orientation;
|
||||
|
||||
firstShow = false;
|
||||
if (preferences.getBoolean("SplashShowOnlyFirstTime", true)) {
|
||||
firstShow = false;
|
||||
}
|
||||
|
||||
loadSpinner();
|
||||
showSplashScreen(true);
|
||||
}
|
||||
@@ -101,6 +108,19 @@ public class SplashScreen extends CordovaPlugin {
|
||||
return preferences.getBoolean("SplashMaintainAspectRatio", false);
|
||||
}
|
||||
|
||||
private int getFadeDuration () {
|
||||
int fadeSplashScreenDuration = preferences.getBoolean("FadeSplashScreen", true) == true ?
|
||||
preferences.getInteger("FadeSplashScreenDuration", DEFAULT_SPLASHSCREEN_DURATION) : 0;
|
||||
|
||||
if (fadeSplashScreenDuration < 30) {
|
||||
// [CB-9750] This value used to be in decimal seconds, so we will assume that if someone specifies 10
|
||||
// they mean 10 seconds, and not the meaningless 10ms
|
||||
fadeSplashScreenDuration *= 1000;
|
||||
}
|
||||
|
||||
return fadeSplashScreenDuration;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause(boolean multitasking) {
|
||||
if (HAS_BUILT_IN_SPLASH_SCREEN) {
|
||||
@@ -194,9 +214,38 @@ public class SplashScreen extends CordovaPlugin {
|
||||
cordova.getActivity().runOnUiThread(new Runnable() {
|
||||
public void run() {
|
||||
if (splashDialog != null && splashDialog.isShowing()) {
|
||||
splashDialog.dismiss();
|
||||
splashDialog = null;
|
||||
splashImageView = null;
|
||||
final int fadeSplashScreenDuration = getFadeDuration();
|
||||
if (fadeSplashScreenDuration > 0) {
|
||||
AlphaAnimation fadeOut = new AlphaAnimation(1, 0);
|
||||
fadeOut.setInterpolator(new DecelerateInterpolator());
|
||||
fadeOut.setDuration(fadeSplashScreenDuration);
|
||||
|
||||
splashImageView.setAnimation(fadeOut);
|
||||
splashImageView.startAnimation(fadeOut);
|
||||
|
||||
fadeOut.setAnimationListener(new Animation.AnimationListener() {
|
||||
@Override
|
||||
public void onAnimationStart(Animation animation) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationEnd(Animation animation) {
|
||||
if (splashDialog != null && splashDialog.isShowing()) {
|
||||
splashDialog.dismiss();
|
||||
splashDialog = null;
|
||||
splashImageView = null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationRepeat(Animation animation) {
|
||||
}
|
||||
});
|
||||
} else {
|
||||
splashDialog.dismiss();
|
||||
splashDialog = null;
|
||||
splashImageView = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -207,14 +256,17 @@ public class SplashScreen extends CordovaPlugin {
|
||||
*/
|
||||
@SuppressWarnings("deprecation")
|
||||
private void showSplashScreen(final boolean hideAfterDelay) {
|
||||
final int splashscreenTime = preferences.getInteger("SplashScreenDelay", 3000);
|
||||
final int splashscreenTime = preferences.getInteger("SplashScreenDelay", DEFAULT_SPLASHSCREEN_DURATION);
|
||||
final int drawableId = preferences.getInteger("SplashDrawableId", 0);
|
||||
|
||||
final int fadeSplashScreenDuration = getFadeDuration();
|
||||
final int effectiveSplashDuration = splashscreenTime - fadeSplashScreenDuration;
|
||||
|
||||
// If the splash dialog is showing don't try to show it again
|
||||
if (splashDialog != null && splashDialog.isShowing()) {
|
||||
return;
|
||||
}
|
||||
if (drawableId == 0 || (splashscreenTime <= 0 && hideAfterDelay)) {
|
||||
if (drawableId == 0 || (effectiveSplashDuration <= 0 && hideAfterDelay)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -264,7 +316,7 @@ public class SplashScreen extends CordovaPlugin {
|
||||
public void run() {
|
||||
removeSplashScreen();
|
||||
}
|
||||
}, splashscreenTime);
|
||||
}, effectiveSplashDuration);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
typedef struct {
|
||||
BOOL iPhone;
|
||||
BOOL iPad;
|
||||
BOOL iPhone4;
|
||||
BOOL iPhone5;
|
||||
BOOL iPhone6;
|
||||
BOOL iPhone6Plus;
|
||||
|
||||
@@ -22,14 +22,14 @@
|
||||
#import <Cordova/CDVScreenOrientationDelegate.h>
|
||||
#import "CDVViewController+SplashScreen.h"
|
||||
|
||||
#define kSplashScreenDurationDefault 0.25f
|
||||
#define kSplashScreenDurationDefault 3000.0f
|
||||
|
||||
|
||||
@implementation CDVSplashScreen
|
||||
|
||||
- (void)pluginInitialize
|
||||
{
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(pageDidLoad) name:CDVPageDidLoadNotification object:self.webView];
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(pageDidLoad) name:CDVPageDidLoadNotification object:nil];
|
||||
|
||||
[self setVisible:YES];
|
||||
}
|
||||
@@ -82,11 +82,16 @@
|
||||
NSString* topActivityIndicator = [self.commandDelegate.settings objectForKey:[@"TopActivityIndicator" lowercaseString]];
|
||||
UIActivityIndicatorViewStyle topActivityIndicatorStyle = UIActivityIndicatorViewStyleGray;
|
||||
|
||||
if ([topActivityIndicator isEqualToString:@"whiteLarge"]) {
|
||||
if ([topActivityIndicator isEqualToString:@"whiteLarge"])
|
||||
{
|
||||
topActivityIndicatorStyle = UIActivityIndicatorViewStyleWhiteLarge;
|
||||
} else if ([topActivityIndicator isEqualToString:@"white"]) {
|
||||
}
|
||||
else if ([topActivityIndicator isEqualToString:@"white"])
|
||||
{
|
||||
topActivityIndicatorStyle = UIActivityIndicatorViewStyleWhite;
|
||||
} else if ([topActivityIndicator isEqualToString:@"gray"]) {
|
||||
}
|
||||
else if ([topActivityIndicator isEqualToString:@"gray"])
|
||||
{
|
||||
topActivityIndicatorStyle = UIActivityIndicatorViewStyleGray;
|
||||
}
|
||||
|
||||
@@ -104,7 +109,8 @@
|
||||
|
||||
id showSplashScreenSpinnerValue = [self.commandDelegate.settings objectForKey:[@"ShowSplashScreenSpinner" lowercaseString]];
|
||||
// backwards compatibility - if key is missing, default to true
|
||||
if ((showSplashScreenSpinnerValue == nil) || [showSplashScreenSpinnerValue boolValue]) {
|
||||
if ((showSplashScreenSpinnerValue == nil) || [showSplashScreenSpinnerValue boolValue])
|
||||
{
|
||||
[parentView addSubview:_activityView];
|
||||
}
|
||||
|
||||
@@ -116,6 +122,12 @@
|
||||
[self updateImage];
|
||||
}
|
||||
|
||||
- (void)hideViews
|
||||
{
|
||||
[_imageView setAlpha:0];
|
||||
[_activityView setAlpha:0];
|
||||
}
|
||||
|
||||
- (void)destroyViews
|
||||
{
|
||||
[(CDVViewController *)self.viewController setEnabledAutorotation:[(CDVViewController *)self.viewController shouldAutorotateDefaultValue]];
|
||||
@@ -144,6 +156,7 @@
|
||||
device.iPad = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad);
|
||||
device.iPhone = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone);
|
||||
device.retina = ([mainScreen scale] == 2.0);
|
||||
device.iPhone4 = (device.iPhone && limit == 480.0);
|
||||
device.iPhone5 = (device.iPhone && limit == 568.0);
|
||||
// note these below is not a true device detect, for example if you are on an
|
||||
// iPhone 6/6+ but the app is scaled it will prob set iPhone5 as true, but
|
||||
@@ -167,21 +180,49 @@
|
||||
// this means there are no mixed orientations in there
|
||||
BOOL isOrientationLocked = !(supportsPortrait && supportsLandscape);
|
||||
|
||||
if (imageName) {
|
||||
if (imageName)
|
||||
{
|
||||
imageName = [imageName stringByDeletingPathExtension];
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
imageName = @"Default";
|
||||
}
|
||||
|
||||
if (device.iPhone5) { // does not support landscape
|
||||
|
||||
// Add Asset Catalog specific prefixes
|
||||
if ([imageName isEqualToString:@"LaunchImage"])
|
||||
{
|
||||
if (device.iPhone4 || device.iPhone5 || device.iPad) {
|
||||
imageName = [imageName stringByAppendingString:@"-700"];
|
||||
} else if(device.iPhone6) {
|
||||
imageName = [imageName stringByAppendingString:@"-800"];
|
||||
} else if(device.iPhone6Plus) {
|
||||
imageName = [imageName stringByAppendingString:@"-800"];
|
||||
if (currentOrientation == UIInterfaceOrientationPortrait || currentOrientation == UIInterfaceOrientationPortraitUpsideDown)
|
||||
{
|
||||
imageName = [imageName stringByAppendingString:@"-Portrait"];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (device.iPhone5)
|
||||
{ // does not support landscape
|
||||
imageName = [imageName stringByAppendingString:@"-568h"];
|
||||
} else if (device.iPhone6) { // does not support landscape
|
||||
}
|
||||
else if (device.iPhone6)
|
||||
{ // does not support landscape
|
||||
imageName = [imageName stringByAppendingString:@"-667h"];
|
||||
} else if (device.iPhone6Plus) { // supports landscape
|
||||
if (isOrientationLocked) {
|
||||
}
|
||||
else if (device.iPhone6Plus)
|
||||
{ // supports landscape
|
||||
if (isOrientationLocked)
|
||||
{
|
||||
imageName = [imageName stringByAppendingString:(supportsLandscape ? @"-Landscape" : @"")];
|
||||
} else {
|
||||
switch (currentOrientation) {
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (currentOrientation)
|
||||
{
|
||||
case UIInterfaceOrientationLandscapeLeft:
|
||||
case UIInterfaceOrientationLandscapeRight:
|
||||
imageName = [imageName stringByAppendingString:@"-Landscape"];
|
||||
@@ -192,11 +233,17 @@
|
||||
}
|
||||
imageName = [imageName stringByAppendingString:@"-736h"];
|
||||
|
||||
} else if (device.iPad) { // supports landscape
|
||||
if (isOrientationLocked) {
|
||||
}
|
||||
else if (device.iPad)
|
||||
{ // supports landscape
|
||||
if (isOrientationLocked)
|
||||
{
|
||||
imageName = [imageName stringByAppendingString:(supportsLandscape ? @"-Landscape" : @"-Portrait")];
|
||||
} else {
|
||||
switch (currentOrientation) {
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (currentOrientation)
|
||||
{
|
||||
case UIInterfaceOrientationLandscapeLeft:
|
||||
case UIInterfaceOrientationLandscapeRight:
|
||||
imageName = [imageName stringByAppendingString:@"-Landscape"];
|
||||
@@ -214,21 +261,62 @@
|
||||
return imageName;
|
||||
}
|
||||
|
||||
- (UIInterfaceOrientation)getCurrentOrientation
|
||||
{
|
||||
UIInterfaceOrientation iOrientation = [UIApplication sharedApplication].statusBarOrientation;
|
||||
UIDeviceOrientation dOrientation = [UIDevice currentDevice].orientation;
|
||||
|
||||
bool landscape;
|
||||
|
||||
if (dOrientation == UIDeviceOrientationUnknown || dOrientation == UIDeviceOrientationFaceUp || dOrientation == UIDeviceOrientationFaceDown) {
|
||||
// If the device is laying down, use the UIInterfaceOrientation based on the status bar.
|
||||
landscape = UIInterfaceOrientationIsLandscape(iOrientation);
|
||||
} else {
|
||||
// If the device is not laying down, use UIDeviceOrientation.
|
||||
landscape = UIDeviceOrientationIsLandscape(dOrientation);
|
||||
|
||||
// There's a bug in iOS!!!! http://openradar.appspot.com/7216046
|
||||
// So values needs to be reversed for landscape!
|
||||
if (dOrientation == UIDeviceOrientationLandscapeLeft)
|
||||
{
|
||||
iOrientation = UIInterfaceOrientationLandscapeRight;
|
||||
}
|
||||
else if (dOrientation == UIDeviceOrientationLandscapeRight)
|
||||
{
|
||||
iOrientation = UIInterfaceOrientationLandscapeLeft;
|
||||
}
|
||||
else if (dOrientation == UIDeviceOrientationPortrait)
|
||||
{
|
||||
iOrientation = UIInterfaceOrientationPortrait;
|
||||
}
|
||||
else if (dOrientation == UIDeviceOrientationPortraitUpsideDown)
|
||||
{
|
||||
iOrientation = UIInterfaceOrientationPortraitUpsideDown;
|
||||
}
|
||||
}
|
||||
|
||||
return iOrientation;
|
||||
}
|
||||
|
||||
// Sets the view's frame and image.
|
||||
- (void)updateImage
|
||||
{
|
||||
NSString* imageName = [self getImageName:[[UIApplication sharedApplication] statusBarOrientation] delegate:(id<CDVScreenOrientationDelegate>)self.viewController device:[self getCurrentDevice]];
|
||||
NSString* imageName = [self getImageName:[self getCurrentOrientation] delegate:(id<CDVScreenOrientationDelegate>)self.viewController device:[self getCurrentDevice]];
|
||||
|
||||
if (![imageName isEqualToString:_curImageName]) {
|
||||
if (![imageName isEqualToString:_curImageName])
|
||||
{
|
||||
UIImage* img = [UIImage imageNamed:imageName];
|
||||
_imageView.image = img;
|
||||
_curImageName = imageName;
|
||||
}
|
||||
|
||||
// Check that splash screen's image exists before updating bounds
|
||||
if (_imageView.image) {
|
||||
if (_imageView.image)
|
||||
{
|
||||
[self updateBounds];
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
NSLog(@"WARNING: The splashscreen image named %@ was not found", imageName);
|
||||
}
|
||||
}
|
||||
@@ -247,27 +335,35 @@
|
||||
* landscape. In this case the image must be rotated in order to appear
|
||||
* correctly.
|
||||
*/
|
||||
BOOL isIPad = [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad;
|
||||
if (UIInterfaceOrientationIsLandscape(orientation) && !isIPad) {
|
||||
CDV_iOSDevice device = [self getCurrentDevice];
|
||||
if (UIInterfaceOrientationIsLandscape(orientation) && !device.iPhone6Plus && !device.iPad)
|
||||
{
|
||||
imgTransform = CGAffineTransformMakeRotation(M_PI / 2);
|
||||
imgBounds.size = CGSizeMake(imgBounds.size.height, imgBounds.size.width);
|
||||
}
|
||||
|
||||
// There's a special case when the image is the size of the screen.
|
||||
if (CGSizeEqualToSize(screenSize, imgBounds.size)) {
|
||||
if (CGSizeEqualToSize(screenSize, imgBounds.size))
|
||||
{
|
||||
CGRect statusFrame = [self.viewController.view convertRect:[UIApplication sharedApplication].statusBarFrame fromView:nil];
|
||||
if (!(IsAtLeastiOSVersion(@"7.0"))) {
|
||||
if (!(IsAtLeastiOSVersion(@"7.0")))
|
||||
{
|
||||
imgBounds.origin.y -= statusFrame.size.height;
|
||||
}
|
||||
} else if (imgBounds.size.width > 0) {
|
||||
}
|
||||
else if (imgBounds.size.width > 0)
|
||||
{
|
||||
CGRect viewBounds = self.viewController.view.bounds;
|
||||
CGFloat imgAspect = imgBounds.size.width / imgBounds.size.height;
|
||||
CGFloat viewAspect = viewBounds.size.width / viewBounds.size.height;
|
||||
// This matches the behaviour of the native splash screen.
|
||||
CGFloat ratio;
|
||||
if (viewAspect > imgAspect) {
|
||||
if (viewAspect > imgAspect)
|
||||
{
|
||||
ratio = viewBounds.size.width / imgBounds.size.width;
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
ratio = viewBounds.size.height / imgBounds.size.height;
|
||||
}
|
||||
imgBounds.size.height *= ratio;
|
||||
@@ -280,50 +376,65 @@
|
||||
|
||||
- (void)setVisible:(BOOL)visible
|
||||
{
|
||||
if (visible == _visible) {
|
||||
return;
|
||||
}
|
||||
_visible = visible;
|
||||
if (visible != _visible)
|
||||
{
|
||||
_visible = visible;
|
||||
|
||||
id fadeSplashScreenValue = [self.commandDelegate.settings objectForKey:[@"FadeSplashScreen" lowercaseString]];
|
||||
id fadeSplashScreenDuration = [self.commandDelegate.settings objectForKey:[@"FadeSplashScreenDuration" lowercaseString]];
|
||||
id fadeSplashScreenValue = [self.commandDelegate.settings objectForKey:[@"FadeSplashScreen" lowercaseString]];
|
||||
id fadeSplashScreenDuration = [self.commandDelegate.settings objectForKey:[@"FadeSplashScreenDuration" lowercaseString]];
|
||||
|
||||
float fadeDuration = fadeSplashScreenDuration == nil ? kSplashScreenDurationDefault : [fadeSplashScreenDuration floatValue];
|
||||
float fadeDuration = fadeSplashScreenDuration == nil ? kSplashScreenDurationDefault : [fadeSplashScreenDuration floatValue];
|
||||
|
||||
if ((fadeSplashScreenValue == nil) || ![fadeSplashScreenValue boolValue]) {
|
||||
fadeDuration = 0;
|
||||
}
|
||||
id splashDurationString = [self.commandDelegate.settings objectForKey: [@"SplashScreenDelay" lowercaseString]];
|
||||
float splashDuration = splashDurationString == nil ? kSplashScreenDurationDefault : [splashDurationString floatValue];
|
||||
|
||||
// Never animate the showing of the splash screen.
|
||||
if (visible) {
|
||||
if (_imageView == nil) {
|
||||
[self createViews];
|
||||
if (fadeSplashScreenValue == nil)
|
||||
{
|
||||
fadeSplashScreenValue = @"true";
|
||||
}
|
||||
} else if (fadeDuration == 0) {
|
||||
[self destroyViews];
|
||||
} else {
|
||||
__weak __typeof(self) weakSelf = self;
|
||||
|
||||
[UIView transitionWithView:self.viewController.view
|
||||
duration:fadeDuration
|
||||
options:UIViewAnimationOptionTransitionNone
|
||||
animations:^(void) {
|
||||
__typeof(self) strongSelf = weakSelf;
|
||||
if (strongSelf != nil) {
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[strongSelf->_activityView setAlpha:0];
|
||||
[strongSelf->_imageView setAlpha:0];
|
||||
});
|
||||
}
|
||||
}
|
||||
completion:^(BOOL finished) {
|
||||
if (finished) {
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[weakSelf destroyViews];
|
||||
});
|
||||
}
|
||||
}
|
||||
];
|
||||
if (![fadeSplashScreenValue boolValue])
|
||||
{
|
||||
fadeDuration = 0;
|
||||
}
|
||||
else if (fadeDuration < 30)
|
||||
{
|
||||
// [CB-9750] This value used to be in decimal seconds, so we will assume that if someone specifies 10
|
||||
// they mean 10 seconds, and not the meaningless 10ms
|
||||
fadeDuration *= 1000;
|
||||
}
|
||||
|
||||
if (_visible)
|
||||
{
|
||||
if (_imageView == nil)
|
||||
{
|
||||
[self createViews];
|
||||
}
|
||||
}
|
||||
else if (fadeDuration == 0 && splashDuration == 0)
|
||||
{
|
||||
[self destroyViews];
|
||||
}
|
||||
else
|
||||
{
|
||||
__weak __typeof(self) weakSelf = self;
|
||||
float effectiveSplashDuration = (splashDuration - fadeDuration) / 1000;
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (uint64_t) effectiveSplashDuration * NSEC_PER_SEC), dispatch_get_main_queue(), CFBridgingRelease(CFBridgingRetain(^(void) {
|
||||
[UIView transitionWithView:self.viewController.view
|
||||
duration:(fadeDuration / 1000)
|
||||
options:UIViewAnimationOptionTransitionNone
|
||||
animations:^(void) {
|
||||
[weakSelf hideViews];
|
||||
}
|
||||
completion:^(BOOL finished) {
|
||||
if (finished) {
|
||||
[weakSelf destroyViews];
|
||||
// TODO: It might also be nice to have a js event happen here -jm
|
||||
}
|
||||
}
|
||||
];
|
||||
})));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -35,6 +35,13 @@
|
||||
- (BOOL)enabledAutorotation
|
||||
{
|
||||
NSNumber *number = (NSNumber *)objc_getAssociatedObject(self, @selector(enabledAutorotation));
|
||||
|
||||
// Defaulting to YES to correspond parent CDVViewController behavior
|
||||
if (number == nil)
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
return [number boolValue];
|
||||
}
|
||||
|
||||
|
||||
@@ -105,6 +105,7 @@ namespace WPCordovaClassLib.Cordova.Commands
|
||||
XDocument configFile = XDocument.Parse(sr.ReadToEnd());
|
||||
|
||||
string configAutoHide = configFile.Descendants()
|
||||
.Where(x => x.Name.LocalName == "preference")
|
||||
.Where(x => (string)x.Attribute("name") == "AutoHideSplashScreen")
|
||||
.Select(x => (string)x.Attribute("value"))
|
||||
.FirstOrDefault();
|
||||
@@ -113,6 +114,7 @@ namespace WPCordovaClassLib.Cordova.Commands
|
||||
prefAutoHide = bool.TryParse(configAutoHide, out bVal) ? bVal : prefAutoHide;
|
||||
|
||||
string configDelay = configFile.Descendants()
|
||||
.Where(x => x.Name.LocalName == "preference")
|
||||
.Where(x => (string)x.Attribute("name") == "SplashScreenDelay")
|
||||
.Select(x => (string)x.Attribute("value"))
|
||||
.FirstOrDefault();
|
||||
@@ -120,6 +122,7 @@ namespace WPCordovaClassLib.Cordova.Commands
|
||||
prefDelay = int.TryParse(configDelay, out nVal) ? nVal : prefDelay;
|
||||
|
||||
string configImage = configFile.Descendants()
|
||||
.Where(x => x.Name.LocalName == "preference")
|
||||
.Where(x => (string)x.Attribute("name") == "SplashScreen")
|
||||
.Select(x => (string)x.Attribute("value"))
|
||||
.FirstOrDefault();
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
|
||||
id="cordova-plugin-splashscreen-tests"
|
||||
version="2.1.0">
|
||||
version="3.1.0">
|
||||
<name>Cordova Splashscreen Plugin Tests</name>
|
||||
<license>Apache 2.0</license>
|
||||
|
||||
|
||||
@@ -26,9 +26,11 @@ var cordova = require('cordova'),
|
||||
channel = require('cordova/channel');
|
||||
|
||||
var isPhone = (cordova.platformId == "windows") && WinJS.Utilities.isPhone;
|
||||
var localSplash = null;
|
||||
var isHosted = window.location.protocol.indexOf('http') === 0;
|
||||
var localSplash = null;
|
||||
var bgColor = "#464646"; // default backgrond color; TDOO - read it from .appxmanifest
|
||||
var splashImageSrc = isPhone ? "ms-appx:///images/splashscreenphone.png" : "ms-appx:///images/splashscreen.png";
|
||||
var splashImageSrc = (isHosted ? "ms-appx-web" : "ms-appx") + ":///images/"
|
||||
+ (isPhone ? "splashscreenphone.png" : "splashscreen.png");
|
||||
|
||||
var SplashScreen = {
|
||||
setBGColor: function (cssBGColor) {
|
||||
|
||||
Reference in New Issue
Block a user