Compare commits

...

209 Commits

Author SHA1 Message Date
zher52
c3ec85e858 调整虚拟按键颜色为黑色 2020-05-07 20:28:14 +08:00
zher52
7edd841078 处理虚拟按键背景问题 2020-04-30 20:25:38 +08:00
zher52
94631e171a 修改参数名称 2020-04-02 09:52:56 +08:00
zher52
db3adec857 添加全屏参数 更新readme 2020-04-02 09:28:04 +08:00
zher52
d3ea3d1771 处理app打开时黑屏的问题 2020-04-01 16:56:56 +08:00
zher52
0ffc88915b 设置为全屏展示 2019-11-14 15:18:03 +08:00
Jan Piotrowski
be85a1b14e ci(travis): Upgrade node from 6 to 8 2019-07-02 20:59:02 +02:00
Jan Piotrowski
7936e7ea54 ci(travis): Remove Android 4.4, Add Android 9.0 2019-06-18 15:44:40 +02:00
Jan Piotrowski
0934d126d2 Travis CI: Add ADDITIONAL_TESTS_DIR=./tests/ios (#212)
* ADDITIONAL_TESTS_DIR=./tests/ios

* add actual code to run it
2019-05-11 00:33:14 +02:00
Jan Piotrowski
e44f9d1f1f Incremented plugin version. (splash20190509) 2019-05-09 22:43:34 +02:00
Jan Piotrowski
5339fcf377 Updated version and RELEASENOTES.md for release 5.0.3 (splash20190509) 2019-05-09 22:41:12 +02:00
Jan Piotrowski
49769ba2d4 Remove unsupported iOS10 Saucelabs simulator 2019-05-09 20:18:07 +02:00
Jan Piotrowski
6800de23b1 CI: Use universal paramedic travis.yml (#210) 2019-05-08 17:48:57 +02:00
エリス
76bec98b94 Revert Paramedic Dev Branch Usage (#208) 2019-05-07 16:45:26 +09:00
Jan Piotrowski
61e353f549 Improve README (#198)
* fix indentation

* add TOC

* fix more indentation and remove JIRA link

* apply changes from https://github.com/apache/cordova-plugin-splashscreen/pull/98

via @RobPosener

* add headline, resort

* remove outdated README translations

* remove outdated test README translations as well

* rework introduction

* optimize caPiTaLiZatiOn

* fix

* remove diff to native splash
2019-05-06 18:27:08 +02:00
エリス
4d8cd6f2fe Updated Travis CI Settings and Package.json (#194)
* Update NPM Package Node Requirement and Others

* Update Travis CI Config

* Stopped Local Tests from Running Sauce Tests with Wildcard Flag
2019-05-04 00:46:47 +02:00
Jan Piotrowski
8490496c0b Add or update GitHub pull request and issue template 2019-02-11 18:40:29 +01:00
Jan Piotrowski
95f91bf50c remove JIRA link 2018-10-04 01:17:00 +02:00
Jan Piotrowski
e78f1d10b1 also accept terms for android sdk android-27 2018-10-01 12:36:38 +02:00
jcesarmobile
8ba8f41637 Merge pull request #138 from adamschachne/master
Fixed docs typo
2018-07-31 00:47:48 +02:00
jcesarmobile
91a8210890 Merge pull request #149 from mmig/CB-12277
CB-12277: (android) avoid NullPointerException  when removing splash-screen
2018-07-31 00:22:48 +02:00
russa
c95a26ab34 Merge branch 'master' into CB-12277 2018-05-22 12:43:52 +02:00
Suraj Pindoria
d96c08e00b CB-13826 Incremented plugin version. 2018-01-25 11:47:20 -08:00
Suraj Pindoria
09e1f06fb0 CB-13826 Updated version and RELEASENOTES.md for release 5.0.2 2018-01-25 11:41:07 -08:00
russa
f9c88b8ab8 CB-12277: (android) avoid NullPointerException on splashImageView when removing splashscreen 2018-01-25 18:18:40 +01:00
jcesarmobile
9a6ff27008 Merge pull request #147 from jcesarmobile/CB-13750
CB-13750: Add build-tools-26.0.2 to travis
2018-01-09 23:33:21 +01:00
Julio César
cadc68f75b CB-13750: Add build-tools-26.0.2 to travis 2018-01-09 20:23:26 +01:00
jcesarmobile
be8be330ac Merge pull request #146 from jcesarmobile/CB-13737
CB-13737 (iOS): fix Splash screen images for iPhone X
2018-01-09 20:00:00 +01:00
Julio César
4ffaaa2952 CB-13737 (iOS): fix Splash screen images for iPhone X 2018-01-07 17:30:23 +01:00
jcesarmobile
b5e0c786c5 Fix release notes (#145) 2017-12-30 00:54:06 -05:00
Simon MacDonald
5197c664c3 Set VERSION to 5.0.2-dev (via coho) 2017-12-27 19:13:50 -05:00
Simon MacDonald
fb606fec6a CB-13714 Updated version and RELEASENOTES.md for release 5.0.1 (via coho) 2017-12-27 19:13:36 -05:00
jcesarmobile
57b553a68e CB-13709: Fix to allow 5.0.0 version install (#144) 2017-12-27 10:50:30 -05:00
Steve Gill
031afc5056 Set VERSION to 5.0.1-dev (via coho) 2017-12-15 17:26:45 -08:00
Steve Gill
36bf91c9e8 CB-13681 Updated version and RELEASENOTES.md for release 5.0.0 (via coho) 2017-12-15 17:25:13 -08:00
Vishal Mishra
a606af98ca Merge pull request #143 from maverickmishra/master
CB-13677: Remove deprecated platforms
2017-12-13 23:20:58 -08:00
maverickmishra
2ae821c4a8 CB-13677: Remove deprecated platforms 2017-12-13 11:39:44 -08:00
Steve Gill
36c43827bb Set VERSION to 4.1.1-dev (via coho) 2017-11-06 14:38:40 -08:00
Steve Gill
326f13220e CB-13542 Updated version and RELEASENOTES.md for release 4.1.0 (via coho) 2017-11-06 14:37:46 -08:00
Adam Schachne
5f41762722 Fixed docs typo 2017-10-22 15:57:59 -07:00
Alexander Sorokin
5ca43e8c5d CB-13473: (CI) Removed browser builds from AppVeyor 2017-10-20 10:23:27 +03:00
Alexander Sorokin
278c5d8168 CB-13472: (CI) Fixed Travis Android builds again 2017-10-20 08:59:26 +03:00
MartijnW49
7cb318727b Update readme
This closes #116
2017-10-18 14:21:52 -07:00
MartijnW49
c2c3a980e1 Tabs to spaces 2017-10-18 14:21:51 -07:00
MartijnW49
1a4b51fbc8 CB-12011: (android) added the possibility to change the spinner color on Android 5.0+ apps 2017-10-18 14:21:51 -07:00
Joe Bowser
0b75c1faa0 This closes #85 2017-10-10 14:15:58 -07:00
Joe Bowser
09e95a2628 This closes #81 2017-10-10 14:14:13 -07:00
Joe Bowser
3180758a4e This closes #132 2017-10-10 14:08:31 -07:00
Andrea Lazzarotto
50a55883d3 CB-12626: Updated Android plugin
This closes #125

Prefer a slightly slower, but bulletproof, way to check for the splashscreen instead of relying on the Cordova preferences. This fixes the splash screen on several phones.
2017-10-05 14:05:50 -07:00
Andrea Lazzarotto
833dc7f783 Samsung crash quick-n-dirty fix 2017-10-05 13:57:45 -07:00
Alexander Sorokin
e443871785 CB-13299 (CI) Fix Android builds 2017-09-19 09:07:06 +03:00
Alexander Sorokin
fcef678a7f CB-13028 (CI) Browser builds on Travis and AppVeyor 2017-07-28 14:22:12 +03:00
Andrey Sharapov
e5c6772f17 CB-13094: (android) Don't show splash when activity being finished 2017-07-24 16:36:34 +04:00
filmaj
7c0ab0fa51 Closes #109 2017-07-18 21:26:05 -07:00
Alexander Sorokin
7735ae0598 CB-11487 (browser) Documented AutoHideSplashScreen for browser
this closes #107
2017-07-11 11:56:02 +03:00
Peter (Somogyvari) Metz
b0e1157c8a CB-11488 (browser) Guarding code against the case when deviceready fires earlier than the plugin init on cold-start 2017-07-11 10:55:19 +03:00
Peter (Somogyvari) Metz
a18cc8241a CB-11488 (browser) The hide() call became non re-entrant after the addition of fade out. This fixes the issue. 2017-07-11 10:55:18 +03:00
Peter (Somogyvari) Metz
bf9607e27f CB-11488 (browser) Added a 1 second long fade out to the splash screen instead of the hard remove from the DOM whenever hide() is called.
Also made a high z-index the default. This could be added from the user's stylesheets but if that only
gets parsed later, there may be flickering between the application UI and the splash screen itself.
2017-07-11 10:55:18 +03:00
Peter (Somogyvari) Metz
87d29ad6d3 CB-11487 (browser) The "standard" AutoHideSplashScreen config.xml property is now supported by the browser platform. 2017-07-11 10:55:18 +03:00
Peter (Somogyvari) Metz
2db7bac571 CB-11486 (browser) splashScreenDelay now feed through parseInt to ensure it's an integer by the time it's value is passed in to setTimeout() in hide(). 2017-07-11 10:55:17 +03:00
Alexander Sorokin
d6db9f3459 CB-13000: (CI) Speed up android builds 2017-07-10 10:34:56 +03:00
Alexander Sorokin
be635a36c1 CB-12991: (CI) Updated CI badges 2017-07-07 11:36:52 +03:00
Alexander Sorokin
d63786d33b CB-12935: (windows) Enable paramedic builds on AppVeyor 2017-06-30 09:32:26 +03:00
Alexander Sorokin
98f83fea5a CB-12935: (ios, android) Enable paramedic builds on Travis CI 2017-06-27 08:40:39 +03:00
jab
c81df6f274 CB-12947: (docs) Fix iPhone 5 and 5s resolution
(and add iPhone SE which was missing)
2017-06-23 11:39:29 -04:00
filmaj
ffda2e81b9 CB-12847: added bugs entry to package.json. 2017-05-25 19:03:13 +02:00
filmaj
e0cf396835 Close #126 2017-05-23 21:10:42 +02:00
filmaj
7f140e0176 Set VERSION to 4.0.4-dev (via coho) 2017-04-27 13:05:10 -07:00
filmaj
85aa605a12 CB-12736 Updated version and RELEASENOTES.md for release 4.0.3 (via coho) 2017-04-27 13:05:08 -07:00
Alexander Sorokin
7c687957f8 CB-12622 Added Android 6.0 build badge to README 2017-04-26 16:30:20 +03:00
Steve Gill
13849c3d20 CB-12685: added package.json to tests folder 2017-04-21 19:26:24 -07:00
Steve Gill
90ba3dfc5b Set VERSION to 4.0.3-dev (via coho) 2017-03-02 15:26:49 -08:00
Steve Gill
b1ceb532f8 CB-12519 Updated version and RELEASENOTES.md for release 4.0.2 2017-02-28 17:41:27 -08:00
daserge
1185561549 CB-12353 Corrected merges usage in plugin.xml 2017-01-20 14:57:35 +03:00
Nikita Matrosov
894d164191 CB-12369: Add plugin typings from DefinitelyTyped
This closes #123
2017-01-20 11:56:43 +03:00
Alexander Sorokin
caa5534c0d CB-12363 Added build badges for iOS 9.3 and 10.0 2017-01-18 13:38:07 +03:00
Shazron Abdullah
a922ce0453 CB-12236 - Fixed RELEASENOTES for cordova-plugin-splashscreen 2016-12-11 12:58:03 -08:00
Alexander Sorokin
6195d6741b CB-12230 Removed Windows 8.1 build badges 2016-12-09 13:58:36 +03:00
Shazron Abdullah
0f2a069588 CB-12224 Incremented plugin version. 2016-12-07 16:55:08 -08:00
Shazron Abdullah
782939f7ef CB-12224 Updated version and RELEASENOTES.md for release 4.0.1 2016-12-07 16:39:46 -08:00
daserge
04667e04c0 CB-11751 'extendedSplashScreen' is undefined
Document that splashscreen needs to be disabled on Windows in case of updating entire document body
2016-12-02 17:27:37 +03:00
daserge
de28cf89bf CB-9287 Not enough Icons and Splashscreens for Windows 8.1 and Windows Phone 8.1
Documented MRT-style configuration
2016-11-25 13:40:06 +03:00
Shazron Abdullah
770c264d2c CB-11917 - Remove pull request template checklist item: "iCLA has been submitted…"
This closes #115
2016-10-04 21:36:47 -07:00
Kerri Shotts
5a1ade6114 CB-11830 (iOS) Fix doc typos in PR#114 2016-09-29 12:06:07 -05:00
Kerri Shotts
62509f6b47 CB-11829 (iOS) Support for CB-9762; docs (CB-11830)
This closes #114
2016-09-28 11:52:02 -05:00
Steve Gill
2eb78b3724 CB-11832 Incremented plugin version. 2016-09-09 16:08:04 -07:00
Steve Gill
6e43615e25 CB-11832 Updated version and RELEASENOTES.md for release 4.0.0 2016-09-08 23:38:55 -07:00
Vladimir Kotikov
ac39b04b6f CB-11795 Add 'protective' entry to cordovaDependencies
The entry is required to protect end-users from fetching edge versions of the plugin by incompatible version of cordova. This also assumes that we will not introduce any regressions in compatibility w/ cordova in minor and patch releases. On every major release we will need to add similar entry with _next_ major version.

 This closes #113
2016-09-08 12:01:36 +03:00
Julio César
66f7ee34d1 Closing outdated pull request: close #106 2016-08-26 20:48:18 +02:00
Vladimir Kotikov
41ca5809b1 CB-11326 Prevent crash when initializing plugin after navigating to another URL 2016-07-21 23:08:02 +03:00
Franco Bugnano
0a8b5be3d1 Fix crash on iOS when reloading page from remote Safari
This closes #110
2016-07-21 21:39:41 +02:00
Vladimir Kotikov
d65c0c7cc5 Add badges for paramedic builds on Jenkins 2016-06-10 12:12:56 +03:00
Nikhil Khandelwal
4102589bd5 Add pull request template. 2016-05-23 13:54:00 -07:00
daserge
1eac08c558 CB-11179 Extend the windows-splashscreen docs
Documented a way to disable splashscreen
2016-05-12 17:57:30 +03:00
daserge
80b01049c8 CB-11159 Fix flaky splashscreen native tests
Adds a retry as a temporary measure
2016-05-12 15:00:00 +03:00
daserge
4adff6f1c9 CB-11156 Change default FadeSplashScreenDuration value 2016-05-12 15:00:00 +03:00
daserge
3d924fce1b CB-8056 Updated the dependency version, added it to the docs 2016-04-29 16:26:20 +03:00
Dmitry Blotsky
6a737203da CB-10996 Adding front matter to README.md 2016-04-22 19:35:51 -07:00
daserge
acb45f3a38 CB-8056 Implement splashscreen for Windows platform
The plugin implementation has been moved to the platform code
Documented SplashScreenBackgroundColor preference for Windows
Updated the docs
Updated plugin dependencies - cordova-windows@5 is required
Updated the plugin version to 4.0.0
2016-04-22 18:20:28 +03:00
daserge
8d66b9e353 CB-6498 Misleading documentation in Android Quirks 2016-04-19 15:03:04 +03:00
Steve Gill
edb6c3d6f8 CB-11091 Incremented plugin version. 2016-04-15 13:45:27 -07:00
Steve Gill
14061d1999 Updated version and RELEASENOTES.md for release 3.2.2 2016-04-15 13:08:27 -07:00
weexpectedTHIS
6863886d74 Fixed misspelling in the README
Github: close #88
2016-03-31 16:09:59 +03:00
daserge
9832d2e165 CB-10979 Fix splashscreen ios native tests
Added jshintignore for tests/ios
2016-03-30 10:12:25 +03:00
Jeroen Verhoest
bea0a4e408 CB-10895 Transparent Splashscreen view sometimes remains
github: close#92
2016-03-24 16:33:23 +03:00
daserge
41d9ae94ff CB-10562 hide() not working in latest splashscreen plug in 3.1.0 in iOS 2016-03-24 16:19:19 +03:00
Sarangan Rajamanickam
9ca15db91a CB-10688:Plugin Splashscreen Readme must have examples. This closes #90 2016-03-21 15:04:56 -07:00
daserge
f8311aaca8 CB-10864 Run ios native tests on Travis
Updated cordova-ios tests dependency version to latest published
2016-03-14 20:30:52 +03:00
Carlos Santana
abbb07e5ee clean up release notes 2016-03-10 13:56:59 -05:00
Carlos Santana
2012ba9ab6 CB-10820 Incremented plugin version. 2016-03-09 22:34:18 -05:00
Carlos Santana
e877722bac CB-10820 Updated version and RELEASENOTES.md for release 3.2.1 2016-03-09 22:14:25 -05:00
Dan Polivy
617ad81090 CB-10692 Don't fade when plugin is forced to close
The fading logic exposed a race condition in an edge case when the
plugin was repeatedly reinitialized, e.g. when the WebView tries to load
a new URL. To address this, we add a flag to removeSplashScreen() that
allows the fade logic to be bypassed in certain circumstances --
specifically, when hiding the splashscreen due to onPause or onDestroy
events. By hiding it immediately in this scenario, we can avoid any race
conditions due to the fade delay.

github: close #86
2016-03-09 23:13:19 +03:00
Sarangan Rajamanickam
03ea0a4e80 CB-10764: Remove emoji in cordova-plugin-splashscreen
Removing warning emoji
2016-03-02 17:36:23 -08:00
daserge
850159490c CB-10650 Non-index content.src causes Splashscreen to be not displayed on browser 2016-02-19 16:10:17 +03:00
daserge
5ea854d8c3 CB-10636 Add JSHint for plugins
Fixed autotests
2016-02-19 12:18:29 +03:00
Edna Morales
e401a4de0f CB-10606 fix deprecation warning for interfaceOrientation
This closes #82
2016-02-15 19:34:38 -05:00
t1st3
2e1ec32916 chore: edit package.json license to match SPDX id
See [NPM package.json spec for licenses](https://docs.npmjs.com/files/package.json#license) and [SPDX license IDs](https://spdx.org/licenses/)

X-ref: https://github.com/apache/cordova-plugin-device/pull/48

This closes #79
2016-02-10 13:21:19 +10:00
Vladimir Kotikov
4bc552848f CB-10557 Incremented plugin version. 2016-02-09 13:13:37 +03:00
Vladimir Kotikov
5af0016c67 CB-10557 Updated version and RELEASENOTES.md for release 3.2.0 2016-02-09 13:13:27 +03:00
daserge
617960ee3e CB-10422 Splashscreen displays black screen with no image on Android 2016-01-27 18:58:56 +03:00
daserge
109c82b29b CB-10412 AutoHideSplashScreen "false" isn't taken in account on iOS 2016-01-27 18:53:23 +03:00
daserge
799b0a1737 CB-9516 Android SplashScreen - Spinner Does Not Display
Removes spinnerStop call from onMessage("spinner", "stop") as it is called when webview is shown and we are hiding spinner manually along with the splashscreen dialog.
Changed the spinner to be noncancellable.
Changed the ProgressDialog to custom only-spinner mode (on transparent background, without title/message and dimming).
Removed unused spinnerStart action handler.
Updated the docs.
2016-01-22 14:21:34 +03:00
Dan Polivy
5b3c2c8b14 CB-9094: Smarter autohide logic on Android
When the plugin is initialized, the splash screen is shown with an
auto-hide delay. If a subsequent call to show() comes in while the
splashscreen is visible, it will still be automatically hidden, even
though the user expectation is that it wouldn't be.

This fix tracks the "hideAfterDelay" setting of the most recent call to
show() -- and when the auto hide timer goes off, if the most recent call
to show() did not set hideAfterDelay, then the splashscreen will not be
automatically hidden.

This provides a more consistent -- and expected -- behavior based on
user action.

https://issues.apache.org/jira/browse/CB-9094

Github: close #49
2016-01-22 13:22:37 +03:00
daserge
7a12204ba9 CB-8396 Add AutoHideSplashScreen logic to Android's Splashscreen
Also initializing the splashscreen image irrespective of firstShow because the splashscreen could be shown manually via navigator.splashscreen.show(); after exiting the app using BackButton or via navigator.app.exitApp();
2016-01-18 11:36:21 +03:00
daserge
eada9a6ac1 Closing stale: close #14, close #17, close #23, close #33, close #63 2016-01-18 10:37:43 +03:00
Steve Gill
12dcd57d51 CB-10368 Incremented plugin version. 2016-01-15 16:58:32 -08:00
Steve Gill
0f4a9d3f18 CB-10368 Updated version and RELEASENOTES.md for release 3.1.0 2016-01-15 16:35:06 -08:00
daserge
50318213c4 CB-9538 Implementing FadeSplashScreen feature for Android
Refactoring, adds support of seconds for fade duration for backward compatibility
Includes fade duration into overall splashscreen duration to be consistent with iOS
Updated the docs
2016-01-11 12:49:38 +03:00
Philipp Grosswiler
34bc1dbf16 CB-9538 Implementing FadeSplashScreen feature for Android 2016-01-11 12:44:12 +03:00
daserge
3b2e9e5912 CB-9240 Cordova splash screen plugin iPad landscape mode issue
Aligns shouldRotate default value with parent CDVViewController behavior
2015-12-29 22:08:02 +03:00
daserge
d7841c7ec9 CB-10263 Fix splashscreen plugin filenames for Asset Catalog
Github: close #69
2015-12-29 12:00:31 +03:00
Wilson Pinto
1e67606c60 CB-9374 Android: add SplashShowOnlyFirstTime as preference
Github: close #70
2015-12-26 23:01:15 +03:00
daserge
fa3b665223 CB-10244 Don't rotate the iPhone 6 Plus splash 2015-12-22 17:28:53 +03:00
daserge
875ccbf5bc CB-9043 Fix the ios splashscreen being deformed on orientation change 2015-12-22 17:15:59 +03:00
Thejaswi Puthraya
ccb3c2f453 CB-10079 Splashscreen plugin does not honor SplashScreenDelay on iOS
Github: close #64
2015-12-21 08:00:27 -08:00
daserge
cfc6d74506 CB-10231 Fix FadeSplashScreen to default to true on iOS 2015-12-21 16:51:19 +03:00
Steve Gill
78d8ef94eb CB-10035 Incremented plugin version. 2015-11-30 17:57:07 -08:00
Steve Gill
e2239306d6 CB-10035 linked issues in RELEASENOTES.md 2015-11-18 22:11:41 -08:00
Steve Gill
ea3f7f7b07 CB-10035 Updated version and RELEASENOTES.md for release 3.0.0 2015-11-18 19:45:06 -08:00
Steve Gill
d348168e08 removed r prefix from tags 2015-11-18 14:53:11 -08:00
Steve Gill
848bd487e0 CB-10035 Updated RELEASENOTES to be newest to oldest 2015-11-18 13:54:08 -08:00
Dmitry Blotsky
d034ceee6e Actually fixing the contribute link. 2015-10-23 12:11:50 -07:00
Dmitry Blotsky
93aaf0529e Fixing contribute link. 2015-10-23 12:03:42 -07:00
Jesse MacFadyen
60fb0621ae Merge branch 'add-jira-link' of https://github.com/revolunet/cordova-plugin-splashscreen 2015-10-05 17:50:24 -07:00
Jesse MacFadyen
7eec7c8b43 Bumped version number for API changed in CB-9750 commit 2015-10-05 17:47:40 -07:00
Jesse MacFadyen
3a79663680 CB-9750 FadeSplashDuration is now in msecs 2015-10-05 17:46:12 -07:00
Jesse MacFadyen
b83392df21 This closes #56, This closes #44 2015-10-05 17:23:59 -07:00
Jesse MacFadyen
2b5187b909 fix formatting 2015-10-05 17:20:57 -07:00
Jesse MacFadyen
fb0764c528 CB-8875 FadeSplashScreen was not fading 2015-10-05 16:34:49 -07:00
Jesse MacFadyen
9a69f12ada CB-9749 documentation is wrong - default SplashScreenDelay 2015-10-05 14:16:30 -07:00
Jesse MacFadyen
9bd0ec7091 Add line to increase readability. Close #58 2015-09-14 13:54:48 -07:00
Julien Bouquillon
f675376de1 add JIRA issue tracker link 2015-09-10 18:29:36 +02:00
daserge
9ea2d4c86f CB-9467 SplashScreen does not show any image in hosted app on Windows 10 2015-08-07 11:29:05 +03:00
Andrey Kurdyumov
5aff6590f8 CB-7282 Document AutoHideSplashScreenpreference 2015-07-25 13:52:42 +06:00
Shazron Abdullah
f4a92d21ff CB-9327 - Splashscreen not receiving CDVPageLoadNotification 2015-07-07 18:17:07 -07:00
Jesse MacFadyen
0916db61b4 remove travis-ci 2015-07-07 17:55:55 -07:00
Roel van Uden
ac23964ac6 WP8: Avoid config value of a wrong element.
If you have an element that shares the `name`, like <feature
name="SplashScreen">, then the `value` attribute was read of that
instead (since it can appear *before* the preference element). Thus, the
config of `SplashScreen` preference was not settable at all.
2015-06-22 11:50:07 +02:00
Steve Gill
57ad3602f4 CB-9192 Incremented plugin version. 2015-06-17 17:35:36 -07:00
Steve Gill
4b1df233ae CB-9202 updated repo url to github mirror in package.json 2015-06-17 14:14:41 -07:00
Steve Gill
c4ba138de5 CB-9192 Updated version and RELEASENOTES.md for release 2.1.0 2015-06-17 12:36:05 -07:00
Steve Gill
805bcf505d added missing license headers 2015-06-17 11:11:40 -07:00
Victor Sosa
fa29a85fcb CB-9128 cordova-plugin-splashscreen documentation translation: cordova-plugin-splashscreen 2015-06-12 09:42:35 -05:00
Raymond Camden
ab26925e25 fix npm md issue 2015-06-02 11:01:17 -05:00
Shazron Abdullah
ed00c63d2d Fixed iOS unit tests. 2015-05-12 00:04:24 -07:00
Dan Polivy
52c025bbef CB-3562: Disable screen rotation for iPhone when splash screen is shown. (closes #47)
This is a port of emarashliev's original fix for CB-3562, cleaned up
to avoid deprecated functions.

Merge branch 'master' of https://github.com/emarashliev/cordova-plugin-splashscreen into CB3562

Signed-off-by: Shazron Abdullah <shazron@apache.org>
2015-05-11 23:59:44 -07:00
Dan Polivy
87f3c3a3ac CB-8988: Fix rotation on iOS/iPad (closes #46)
The viewController.interfaceOrientation passed to getImageName has not
yet been updated with the new orientation, even when the frame/bounds
change event has fired. Thus, the plugin never actually loads the
correct image for the new orientation. Instead, it poorly scales the
existing image.

This fix uses the statusBarOrientation property of the UIApplication
object to detect the actual orientation, and correctly load the right
image.

Signed-off-by: Shazron Abdullah <shazron@apache.org>
2015-05-11 17:46:58 -07:00
Joe Bowser
6cc3d1f3fe CB-8904: Don't reset the static variable when it's destroyed, otherwise we might as well just have a member variable 2015-05-07 15:59:39 -07:00
sgrebnov
b7750760f4 Removed wp7 from plugin.xml and package.json 2015-04-25 14:58:11 -07:00
sgrebnov
00e8999eeb CB-8750 [wp8]: Rewrite resoultion helper 2015-04-25 14:56:39 -07:00
sgrebnov
9549ce3a9d CB-8750 [wp8]: Allow resolution-specific splashscreen images
There are two aspect ratios for Windows Phone devices: 15:9 and 16:9. At
the moment, though, there is only one splash screen by default for WP8
Cordova apps. When stretched to fit all possible resolutions, this can
sometimes look bad.

WP supports resolution-specific splashscreens, so this commit adds the
same support to the splashscreen plugin. It uses the same base name for
the splashscreen, but adds modifiers such as ".screen-<res>" based on
the device. If a screen-specific image is found, it is used. If not, we
fall back to the single default image.

Fixes https://issues.apache.org/jira/browse/CB-8750

github close #41
github close #42
2015-04-25 14:55:21 -07:00
Dan Polivy
62e92afae8 CB-8758 [wp8]: UnauthorizedAccessException on hide()
When calling hide() from JS, the attempt to access Popup could happen on
a background thread, which ends up throwing an
UnauthorizedAccessException about cross-thread access.

To address this, it's best to check the popup's state from within the UI
thread.

Fixes https://issues.apache.org/jira/browse/CB-8758
2015-04-25 14:32:17 -07:00
Steve Gill
fa60f01adc CB-8858 Incremented plugin version. 2015-04-15 16:00:22 -07:00
Steve Gill
d23ea4e011 CB-8858 Updated version in package.json for release 2.0.0 2015-04-15 15:50:47 -07:00
Steve Gill
0a46c4cbbb Revert "CB-8858 Incremented plugin version."
This reverts commit a510cd21ec.
2015-04-15 14:31:12 -07:00
Steve Gill
a510cd21ec CB-8858 Incremented plugin version. 2015-04-15 13:55:47 -07:00
Steve Gill
76bf7655a0 CB-8858 Updated version and RELEASENOTES.md for release 2.0.0 2015-04-15 11:06:38 -07:00
Jesse MacFadyen
9575c92db6 give users a way to install the bleeding edge. 2015-04-13 11:40:00 -07:00
Steve Gill
a9ac114130 CB-8746 gave plugin major version bump 2015-04-09 17:03:54 -07:00
Shazron Abdullah
48def1443a CB-8797 - Splashscreen preferences FadeSplashScreenDuration and FadeSplashScreen (iOS) are missing 2015-04-09 14:19:23 -07:00
Shazron Abdullah
559b300d29 CB-8836 - Crashes after animating splashscreen 2015-04-09 14:07:18 -07:00
Andrew Grieve
35272415d3 CB-8753 android: Fix missing import in previous commit 2015-04-07 20:37:06 -04:00
Alex Talis
dd9c88204c CB-8753 android: Adds SplashMaintainAspectRatio preference (close #43) 2015-04-07 10:55:23 -04:00
Steve Gill
5dc26d7e65 CB-8683 changed plugin-id to pacakge-name 2015-04-01 16:41:33 -07:00
Steve Gill
1c41959288 CB-8653 properly updated translated docs to use new id 2015-03-31 16:06:01 -07:00
Steve Gill
43e9c75345 CB-8653 updated translated docs to use new id 2015-03-31 10:53:32 -07:00
Andrew Grieve
9b3f750085 CB-8345 Make default for splashscreen resource "screen" (which is what template and CLI assume it to be) 2015-03-30 09:48:04 -04:00
Andrew Grieve
ba6730e594 Revert "CB-8345 android: Make "splash" the default resource ID instead of null"
This reverts commit 1d89a2aa1b.
There were some other changes in there that weren't meant to be made!
2015-03-30 09:47:00 -04:00
Jesse MacFadyen
89c23fad03 Use TRAVIS_BUILD_DIR, install paramedic by npm 2015-03-24 23:43:27 -07:00
Andrew Grieve
1d89a2aa1b CB-8345 android: Make "splash" the default resource ID instead of null 2015-03-24 14:50:09 -04:00
sgrebnov
0ff8d52081 docs: added Windows to supported platforms 2015-03-19 18:24:40 +03:00
daserge
bb65993a51 CB-7964 Add cordova-plugin-splashscreen support for browser platform
Added Browser platform support
Using cordova/confighelper module to read parameter values from config.xml
Updated the docs
2015-03-18 16:01:31 +03:00
Steve Gill
6ce8a32865 CB-8653 Updated Readme 2015-03-13 19:41:09 -07:00
Jesse MacFadyen
5afde1c62f [wp8] oops, Added back config parse result checks 2015-03-10 15:03:39 -07:00
Jesse MacFadyen
6b1e72c631 [WP8] code cleanup, minor refactors, comments to clarify some stuff. 2015-03-10 14:27:29 -07:00
Jesse MacFadyen
98edfeb73e Merge branch 'galexandrov/wp8-fixes' of https://github.com/Icenium/cordova-plugin-splashscreen 2015-03-10 12:53:16 -07:00
Georgi Alexandrov
688b138e31 Extend WP8 Splash Screen to respect SplashScreen and SplashScreenDelay preferences from config file 2015-03-09 14:30:14 +02:00
Jesse MacFadyen
8bc540e454 CB-8574 Integrate TravisCI 2015-03-02 16:37:52 -08:00
Victor Sosa
4430cfce6b CB-8438 cordova-plugin-splashscreen documentation translation: cordova-plugin-splashscreen 2015-02-27 12:52:28 -06:00
Steve Gill
c1d4ca8d83 CB-8538 Added package.json file 2015-02-25 00:53:27 -08:00
sgrebnov
bcbc23958f CB-8397 Add support to 'windows' for showing the Windows Phone splashscreen 2015-02-11 13:36:02 +03:00
Andrew Grieve
b232cd7447 CB-8429 Incremented plugin version. 2015-02-04 20:54:03 -05:00
Andrew Grieve
a9f0faa499 CB-8429 Updated version and RELEASENOTES.md for release 1.0.0 2015-02-04 20:12:45 -05:00
Andrew Grieve
c3a5867c81 CB-8351 ios: Stop using deprecated IsIpad macro 2015-01-27 10:20:17 -05:00
Andrew Grieve
e86a9cc7a4 CB-8280 android: Don't apply SplashScreenDelay when .show() is called explicitly 2015-01-19 13:39:55 -05:00
Andrew Grieve
ddec7008cb CB-3679 Add engine tag for Android >= 3.6.0 due to use of preferences 2014-12-11 11:15:01 -05:00
Andrew Grieve
e320e2504a CB-8079 Use activity class package name, but fallback to application package name when looking for splash screen drawable 2014-12-10 21:18:00 -05:00
Andrew Grieve
e593fe3f53 CB-3679 Make SplashScreen plugin compatible with cordova-android@4.0.x 2014-12-10 16:09:54 -05:00
Andrew Grieve
50e4887aa1 CB-3679 Break Android splashscreen logic into splascreen plugin 2014-12-10 15:37:15 -05:00
Steve Gill
f67216d64a CB-8110 Incremented plugin version. 2014-12-02 16:08:50 -08:00
46 changed files with 1933 additions and 1312 deletions

28
.appveyor.yml Normal file
View 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%

42
.github/ISSUE_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,42 @@
<!--
Please have a look at the issue templates you get when you click "New issue" in the GitHub UI.
We very much prefer issues created by using one of these templates.
-->
### Issue Type
<!-- Please check the boxes by putting an x in the [ ] like so: [x] -->
- [ ] Bug Report
- [ ] Feature Request
- [ ] Support Question
## Description
## Information
<!-- Include all relevant information that might help understand and reproduce the problem -->
### Command or Code
<!-- What command or code is needed to reproduce the problem? -->
### Environment, Platform, Device
<!-- In what environment, on what platform or on which device are you experiencing the issue? -->
### Version information
<!--
What are relevant versions you are using?
For example:
Cordova: Cordova CLI, Cordova Platforms, Cordova Plugins
Other Frameworks: Ionic Framework and CLI version
Operating System, Android Studio, Xcode etc.
-->
## Checklist
<!-- Please check the boxes by putting an `x` in the `[ ]` like so: `[x]` -->
- [ ] I searched for already existing GitHub issues about this
- [ ] I updated all Cordova tooling to their most recent version
- [ ] I included all the necessary information above

50
.github/ISSUE_TEMPLATE/BUG_REPORT.md vendored Normal file
View File

@@ -0,0 +1,50 @@
---
name: 🐛 Bug Report
about: If something isn't working as expected.
---
# Bug Report
## Problem
### What is expected to happen?
### What does actually happen?
## Information
<!-- Include all relevant information that might help understand and reproduce the problem -->
### Command or Code
<!-- What command or code is needed to reproduce the problem? -->
### Environment, Platform, Device
<!-- In what environment, on what platform or on which device are you experiencing the issue? -->
### Version information
<!--
What are relevant versions you are using?
For example:
Cordova: Cordova CLI, Cordova Platforms, Cordova Plugins
Other Frameworks: Ionic Framework and CLI version
Operating System, Android Studio, Xcode etc.
-->
## Checklist
<!-- Please check the boxes by putting an x in the [ ] like so: [x] -->
- [ ] I searched for existing GitHub issues
- [ ] I updated all Cordova tooling to most recent version
- [ ] I included all the necessary information above

View File

@@ -0,0 +1,29 @@
---
name: 🚀 Feature Request
about: A suggestion for a new functionality
---
# Feature Request
## Motivation Behind Feature
<!-- Why should this feature be implemented? What problem does it solve? -->
## Feature Description
<!--
Describe your feature request in detail
Please provide any code examples or screenshots of what this feature would look like
Are there any drawbacks? Will this break anything for existing users?
-->
## Alternatives or Workarounds
<!--
Describe alternatives or workarounds you are currently using
Are there ways to do this with existing functionality?
-->

View File

@@ -0,0 +1,27 @@
---
name: 💬 Support Question
about: If you have a question, please check out our Slack or StackOverflow!
---
<!------------^ Click "Preview" for a nicer view! -->
Apache Cordova uses GitHub Issues as a feature request and bug tracker _only_.
For usage and support questions, please check out the resources below. Thanks!
---
You can get answers to your usage and support questions about **Apache Cordova** on:
* Slack Community Chat: https://cordova.slack.com (you can sign-up at http://slack.cordova.io/)
* StackOverflow: https://stackoverflow.com/questions/tagged/cordova using the tag `cordova`
---
If you are using a tool that uses Cordova internally, like e.g. Ionic, check their support channels:
* **Ionic Framework**
* [Ionic Community Forum](https://forum.ionicframework.com/)
* [Ionic Worldwide Slack](https://ionicworldwide.herokuapp.com/)
* **PhoneGap**
* [PhoneGap Developer Community](https://forums.adobe.com/community/phonegap)

35
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,35 @@
<!--
Please make sure the checklist boxes are all checked before submitting the PR. The checklist is intended as a quick reference, for complete details please see our Contributor Guidelines:
http://cordova.apache.org/contribute/contribute_guidelines.html
Thanks!
-->
### Platforms affected
### Motivation and Context
<!-- Why is this change required? What problem does it solve? -->
<!-- If it fixes an open issue, please link to the issue here. -->
### Description
<!-- Describe your changes in detail -->
### Testing
<!-- Please describe in detail how you tested your changes. -->
### Checklist
- [ ] I've run the tests to see all new and existing tests pass
- [ ] I added automated test coverage as appropriate for this change
- [ ] Commit is prefixed with `(platform)` if this change only applies to one platform (e.g. `(android)`)
- [ ] If this Pull Request resolves an issue, I linked to the issue in the text above (and used the correct [keyword to close issues using keywords](https://help.github.com/articles/closing-issues-using-keywords/))
- [ ] I've updated the documentation if necessary

1
.jshintignore Normal file
View File

@@ -0,0 +1 @@
tests/ios

16
.jshintrc Normal file
View File

@@ -0,0 +1,16 @@
{
"browser": true
, "devel": true
, "bitwise": true
, "undef": true
, "trailing": true
, "quotmark": false
, "indent": 4
, "unused": "vars"
, "latedef": "nofunc"
, "globals": {
"module": false,
"exports": false,
"require": false
}
}

123
.travis.yml Normal file
View File

@@ -0,0 +1,123 @@
# 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=8
- ANDROID_API_LEVEL=28
- ANDROID_BUILD_TOOLS_VERSION=28.0.3
language: node_js
node_js: 8
# yaml anchor/alias: https://medium.com/@tommyvn/travis-yml-dry-with-anchors-8b6a3ac1b027
_ios: &_ios
os: osx
osx_image: xcode10.2
_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:
# additional `npm test` in directory
- env: ADDITIONAL_TESTS_DIR=./tests/ios
<<: *_ios
# one local test, without saucelabs
- env: PLATFORM=local/browser
<<: *_ios
- env: PLATFORM=local/ios-10.0
<<: *_ios
# many tests with saucelabs
- env: PLATFORM=browser-chrome
- env: PLATFORM=browser-firefox
- env: PLATFORM=browser-safari
- env: PLATFORM=browser-edge
- env: PLATFORM=ios-11.3
<<: *_ios
- env: PLATFORM=ios-12.0
<<: *_ios
- env: PLATFORM=ios-12.2
<<: *_ios
- 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
- if [[ "$PLATFORM" =~ ios ]]; then npm install -g ios-deploy; 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

@@ -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).

View File

@@ -1,22 +1,53 @@
<!---
license: 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.
---
title: 可设置全屏显示的 Splashscreen
description: Control the splash screen for your app.
---
<!--
# license: 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.
-->
# org.apache.cordova.splashscreen
# cordova-plugin-splashscreen
Plugin documentation: [doc/index.md](doc/index.md)
在 [cordova-plugin-splashscreen](https://github.com/apache/cordova-plugin-splashscreen.git) 的基础上添加了全屏设置,处理了android启动app时黑屏的问题
- [Installation](#installation)
- [Preferences](#preferences)
* [config.xml](#configxml)
- [Other](#other)
## Installation
// 安装前请先卸载 cordova-plugin-splashscreen 插件
cordova plugin rm cordova-plugin-splashscreen
// 安装插件
cordova plugin add https://github.com/shuto-cn/cordova-plugin-splashscreen.git
## Preferences
### config.xml
- `SplashFullScreen` (boolean, default to `true`). 在app未设置全屏的情况下FadeSplash是否全屏显示
```xml
<preference name="SplashFullScreen" value="true" />
```
## Other
- 关于android启动黑屏 请保持`SplashScreen`参数值为`screen`否则请修改`src/android/res/values/style.xml`中对应资源id
- 其他配置及插件使用方法请移步[cordova-plugin-splashscreen](https://github.com/apache/cordova-plugin-splashscreen.git)

View File

@@ -20,43 +20,176 @@
-->
# 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.
### 5.0.3 (May 09, 2019)
* Update CI configuration and README ([#210](https://github.com/apache/cordova-plugin-splashscreen/pull/210), [#208](https://github.com/apache/cordova-plugin-splashscreen/pull/208), [#198](https://github.com/apache/cordova-plugin-splashscreen/pull/198), [#194](https://github.com/apache/cordova-plugin-splashscreen/pull/194))
* Add or update GitHub pull request and issue template
* [CB-13826](https://issues.apache.org/jira/browse/CB-13826) Incremented plugin version.
* [CB-12277](https://issues.apache.org/jira/browse/CB-12277) (android) avoid NullPointerException on splashImageView when removing splashscreen
### 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.
### 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
### 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.
### 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)
### 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
### 5.0.0 (Dec 15, 2017)
* [CB-13677](https://issues.apache.org/jira/browse/CB-13677) Remove deprecated platforms
### 0.2.6 (Jan 02, 2014)
* CB-5658 Add doc/index.md for Splashscreen plugin
* Handle error when splash image is missing.
### 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`.
### 0.2.7 (Feb 05, 2014)
* [CB-3562] Fix aspect ratio on landscape-only iPhone applications
* CB-4051 fix for splashscreen rotation problem
### 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
### 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
### 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`
* [CB-12363](https://issues.apache.org/jira/browse/CB-12363) Added build badges for **iOS 9.3** and **iOS 10.0**
* [CB-12230](https://issues.apache.org/jira/browse/CB-12230) Removed **Windows 8.1** build badges
### 4.0.1 (Dec 07, 2016)
* [CB-12224](https://issues.apache.org/jira/browse/CB-12224) Updated version and RELEASENOTES.md for release 4.0.1
* [CB-11751](https://issues.apache.org/jira/browse/CB-11751) 'extendedSplashScreen' is undefined Document that splashscreen needs to be disabled on Windows in case of updating entire document body
* [CB-9287](https://issues.apache.org/jira/browse/CB-9287) Not enough Icons and Splashscreens for **Windows 8.1** and Windows Phone 8.1
* [CB-11917](https://issues.apache.org/jira/browse/CB-11917) - Remove pull request template checklist item: "iCLA has been submitted…"
* [CB-11830](https://issues.apache.org/jira/browse/CB-11830) (iOS) Fix doc typos in PR#114
* [CB-11829](https://issues.apache.org/jira/browse/CB-11829) (iOS) Support for CB-9762; docs (CB-11830)
* [CB-11832](https://issues.apache.org/jira/browse/CB-11832) Incremented plugin version.
### 4.0.0 (Sep 08, 2016)
* [CB-11795](https://issues.apache.org/jira/browse/CB-11795) Add 'protective' entry to cordovaDependencies
* [CB-11326](https://issues.apache.org/jira/browse/CB-11326) Prevent crash when initializing plugin after navigating to another URL
* Fix crash on **iOS** when reloading page from remote **Safari**
* Add badges for paramedic builds on Jenkins
* Add pull request template.
* [CB-11179](https://issues.apache.org/jira/browse/CB-11179) Extend the windows-splashscreen docs
* [CB-11159](https://issues.apache.org/jira/browse/CB-11159) Fix flaky splashscreen native tests
* [CB-11156](https://issues.apache.org/jira/browse/CB-11156) Change default `FadeSplashScreenDuration` value
* [CB-8056](https://issues.apache.org/jira/browse/CB-8056) Updated the dependency version, added it to the docs
* [CB-10996](https://issues.apache.org/jira/browse/CB-10996) Adding front matter to README.md
* [CB-8056](https://issues.apache.org/jira/browse/CB-8056) Implement splashscreen for **Windows** platform
* [CB-6498](https://issues.apache.org/jira/browse/CB-6498) Misleading documentation in **Android** Quirks
### 3.2.2 (Apr 15, 2016)
* [CB-10979](https://issues.apache.org/jira/browse/CB-10979) Fix splashscreen **iOS** native tests. Added `jshintignore` for tests/ios
* [CB-10895](https://issues.apache.org/jira/browse/CB-10895) Transparent Splashscreen view sometimes remains
* [CB-10562](https://issues.apache.org/jira/browse/CB-10562) `hide()` not working in latest splashscreen plug in 3.1.0 in **iOS**
* [CB-10688](https://issues.apache.org/jira/browse/CB-10688) Plugin Splashscreen Readme must have examples.
* [CB-10864](https://issues.apache.org/jira/browse/CB-10864) Run **iOS** native tests on Travis
### 3.2.1 (Mar 09, 2016)
* [CB-10764](https://issues.apache.org/jira/browse/CB-10764) Remove emoji in cordova-plugin-splashscreen
* [CB-10650](https://issues.apache.org/jira/browse/CB-10650) Non-index content.src causes Splashscreen to be not displayed on **Browser**
* [CB-10636](https://issues.apache.org/jira/browse/CB-10636) Add JSHint for plugins
* [CB-10606](https://issues.apache.org/jira/browse/CB-10606) fix deprecation warning for interfaceOrientation on **iOS**
* chore: edit package.json license to match SPDX id
### 3.2.0 (Feb 09, 2016)
* [CB-10422](https://issues.apache.org/jira/browse/CB-10422) Splashscreen displays black screen with no image on Android
* [CB-10412](https://issues.apache.org/jira/browse/CB-10412) AutoHideSplashScreen "false" isn't taken in account on iOS
* [CB-9516](https://issues.apache.org/jira/browse/CB-9516) Android SplashScreen - Spinner Does Not Display
* [CB-9094](https://issues.apache.org/jira/browse/CB-9094) Smarter autohide logic on Android
* [CB-8396](https://issues.apache.org/jira/browse/CB-8396) Add AutoHideSplashScreen logic to Android's Splashscreen
### 3.1.0 (Jan 15, 2016)
* [CB-9538](https://issues.apache.org/jira/browse/CB-9538) Implementing `FadeSplashScreen` feature for **Android**
* [CB-9240](https://issues.apache.org/jira/browse/CB-9240) Cordova splash screen plugin **iPad** landscape mode issue
* [CB-10263](https://issues.apache.org/jira/browse/CB-10263) Fix splashscreen plugin filenames for Asset Catalog
* [CB-9374](https://issues.apache.org/jira/browse/CB-9374) **Android** add `SplashShowOnlyFirstTime` as preference
* [CB-10244](https://issues.apache.org/jira/browse/CB-10244) Don't rotate the **iPhone 6 Plus** splash
* [CB-9043](https://issues.apache.org/jira/browse/CB-9043) Fix the **ios** splashscreen being deformed on orientation change
* [CB-10079](https://issues.apache.org/jira/browse/CB-10079) Splashscreen plugin does not honor `SplashScreenDelay` on **iOS**
* [CB-10231](https://issues.apache.org/jira/browse/CB-10231) Fix `FadeSplashScreen` to default to true on **iOS**
### 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.
### 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()
### 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
### 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.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.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,37 +197,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
### 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.
### 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.
### 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.

View File

@@ -1,75 +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.
-->
# org.apache.cordova.splashscreen
Dieses Plugin zeigt und verbirgt einen Splash-Screen beim Start der Anwendung.
## Installation
cordova plugin add org.apache.cordova.splashscreen
## Unterstützte Plattformen
* Amazon Fire OS
* Android
* BlackBerry 10
* iOS
* Windows Phone 7 und 8
* Windows 8
## Methoden
* SplashScreen.Show
* SplashScreen.Hide
### Android Eigenarten
Sie müssen in der config.xml folgende Einstellungen vornehmen:
`<preference name="SplashScreen" value="foo" />` `<preference name="SplashScreenDelay" value="10000" />`
Wo Foo ist der Name der Datei Splashscreen, vorzugsweise eine 9-Patch-Datei. Stellen Sie sicher, Splashcreen Dateien zu Ihrem Res/Xml-Verzeichnis unter den entsprechenden Ordnern hinzuzufügen. Der zweite Parameter stellt dar, wie lange das Splashscreen in Millisekunden angezeigt werden. Es wird standardmäßig auf 3000 ms. Weitere Informationen finden Sie unter [Symbole und Splash-Screens][1] .
[1]: http://cordova.apache.org/docs/en/edge/config_ref_images.md.html
## SplashScreen.Hide
Schließen Sie den Splash-Screen.
Navigator.SplashScreen.Hide();
### BlackBerry 10, WP8, iOS Eigenarten
Die `config.xml` der Datei `AutoHideSplashScreen` muss `false` . Verstecken des Begrüßungsbildschirms für zwei Sekunden Verzögerung, fügen Sie einen Timer wie die folgende in der `deviceready` -Ereignishandler:
setTimeout(function() {navigator.splashscreen.hide();
}, 2000);
## SplashScreen.Show
Zeigt den Begrüßungsbildschirm.
Navigator.SplashScreen.Show();
Ihre Anwendung kann nicht aufgerufen werden `navigator.splashscreen.show()` bis die app gestartet hat und das `deviceready` -Ereignis ausgelöst hat. Aber da in der Regel der Splash-Screen soll sichtbar sein, bevor die Anwendung gestartet wurde, scheint die Niederlage der Zweck des Begrüßungsbildschirms. Somit einige Konfiguration in `config.xml` wird automatisch `show` den Splash-Screen unmittelbar nach Ihrer app starten und bevor es voll gestartet und hat das `deviceready` Ereignis. Weitere Informationen zu dieser Konfiguration finden Sie unter [Symbole und Splash-Screens][1] . Aus diesem Grund ist es unwahrscheinlich, dass Sie aufrufen müssen `navigator.splashscreen.show()` den Splash-Screen beim Starten der app sichtbar zu machen.

View File

@@ -1,75 +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.
-->
# org.apache.cordova.splashscreen
Este plugin muestra y esconde una pantalla de bienvenida durante el inicio de la aplicación.
## Instalación
cordova plugin add org.apache.cordova.splashscreen
## Plataformas soportadas
* Amazon fire OS
* Android
* BlackBerry 10
* iOS
* Windows Phone 7 y 8
* Windows 8
## Métodos
* splashscreen.show
* splashscreen.hide
### Rarezas Android
En el archivo config.xml, tienes que añadir las siguientes preferencias:
`<preference name="SplashScreen" value="foo" />` `<preference name="SplashScreenDelay" value="10000" />`
Donde foo es el nombre del archivo splashscreen, preferiblemente un archivo de 9 parche. Asegúrese de agregar tus archivos splashcreen en tu directorio res/xml bajo las carpetas apropiadas. El segundo parámetro representa cuánto aparecerán el splashscreen en milisegundos. Valor predeterminado es ms 3000. Ver [los iconos y salpicadura pantallas][1] para obtener más información.
[1]: http://cordova.apache.org/docs/en/edge/config_ref_images.md.html
## splashscreen.hide
Despedir a la pantalla de bienvenida.
Navigator.SplashScreen.Hide();
### BlackBerry 10, WP8, iOS Quirk
El `config.xml` del archivo `AutoHideSplashScreen` la configuración debe ser `false` . Para retrasar oculta la pantalla splash durante dos segundos, agregue un temporizador como la siguiente en el `deviceready` controlador de eventos:
setTimeout(function() {navigator.splashscreen.hide();
}, 2000);
## splashscreen.show
Muestra la pantalla de bienvenida.
Navigator.SplashScreen.Show();
La aplicación no se puede llamar `navigator.splashscreen.show()` hasta que haya iniciado la aplicación y el `deviceready` evento ha despedido. Pero puesto que normalmente la pantalla está destinada a ser visible antes de que comience su aplicación, que parecería que el propósito de la pantalla de bienvenida. Proporcionar cierta configuración en `config.xml` automáticamente `show` la pantalla de presentación inmediatamente después de su lanzamiento de la aplicación y antes de ser completamente ha iniciado y recibió el `deviceready` evento. Ver [los iconos y salpicadura pantallas][1] para obtener más información sobre haciendo esta configuración. Por esta razón, es poco probable que necesitas llamar a `navigator.splashscreen.show()` para hacer la pantalla visible para el inicio de la aplicación.

View File

@@ -1,75 +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.
-->
# org.apache.cordova.splashscreen
Ce plugin affiche et masque un écran de démarrage lors du lancement de l'application.
## Installation
cordova plugin add org.apache.cordova.splashscreen
## Plates-formes prises en charge
* Amazon Fire OS
* Android
* BlackBerry 10
* iOS
* Windows Phone 7 et 8
* Windows 8
## Méthodes
* splashscreen.Show
* splashscreen.Hide
### Quirks Android
Dans votre fichier config.xml, vous devez ajouter les préférences suivantes :
`<preference name="SplashScreen" value="foo" />` `<preference name="SplashScreenDelay" value="10000" />`
Où foo est le nom du fichier splashscreen, préférablement un fichier de 9 correctif. Assurez-vous d'ajouter vos fichiers splashcreen dans votre répertoire res/xml dans les dossiers appropriés. Le deuxième paramètre représente combien de temps le splashscreen apparaîtra en millisecondes. Il est par défaut à 3000 ms. Pour plus d'informations, consultez [icônes et écrans de démarrage][1] .
[1]: http://cordova.apache.org/docs/en/edge/config_ref_images.md.html
## splashscreen.Hide
Faire disparaître de l'écran de démarrage.
Navigator.SplashScreen.Hide() ;
### BlackBerry 10, WP8, iOS Quirk
La `config.xml` du fichier `AutoHideSplashScreen` doit être `false` . Pour retarder la cacher l'écran de démarrage pendant deux secondes, ajouter un minuteur comme suit dans la `deviceready` gestionnaire d'événements :
setTimeout(function() {navigator.splashscreen.hide() ;
}, 2000) ;
## splashscreen.Show
Affiche l'écran de démarrage.
Navigator.SplashScreen.Show() ;
Votre application ne peut pas appeler `navigator.splashscreen.show()` jusqu'à ce que l'application a commencé et le `deviceready` événement a été déclenché. Mais puisqu'en général, l'écran de démarrage est destiné à être visible avant que votre application a commencé, qui semblerait à l'encontre des objectifs de l'écran de démarrage. Fournir une configuration en `config.xml` sera automatiquement `show` l'écran de démarrage immédiatement après votre lancement de l'app et avant qu'il a complètement démarré et a reçu le `deviceready` événement. Voir les [icônes et les écrans de démarrage][1] pour plus d'informations sur la conduite de cette configuration. Pour cette raison, il est peu probable que vous devez appeler `navigator.splashscreen.show()` pour rendre l'écran de démarrage visible pour le démarrage de l'application.

View File

@@ -1,88 +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.
-->
# org.apache.cordova.splashscreen
This plugin displays and hides a splash screen during application launch.
## Installation
cordova plugin add org.apache.cordova.splashscreen
## Supported Platforms
- Amazon Fire OS
- Android
- BlackBerry 10
- iOS
- Windows Phone 7 and 8
- Windows 8
## Methods
- 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" />
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.
## splashscreen.hide
Dismiss the splash screen.
navigator.splashscreen.hide();
### BlackBerry 10, WP8, iOS Quirk
The `config.xml` file's `AutoHideSplashScreen` setting must be
`false`. To delay hiding the splash screen for two seconds, add a
timer such as the following in the `deviceready` event handler:
setTimeout(function() {
navigator.splashscreen.hide();
}, 2000);
## splashscreen.show
Displays the splash screen.
navigator.splashscreen.show();
Your application cannot call `navigator.splashscreen.show()` until the app has
started and the `deviceready` event has fired. But since typically the splash
screen is meant to be visible before your app has started, that would seem to
defeat the purpose of the splash screen. Providing some configuration in
`config.xml` will automatically `show` the splash screen immediately after your
app launch and before it has fully started and received the `deviceready`
event. See [Icons and Splash Screens](http://cordova.apache.org/docs/en/edge/config_ref_images.md.html)
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.

View File

@@ -1,75 +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.
-->
# org.apache.cordova.splashscreen
Questo plugin Visualizza e nasconde una schermata iniziale durante l'avvio dell'applicazione.
## Installazione
cordova plugin add org.apache.cordova.splashscreen
## Piattaforme supportate
* Amazon fuoco OS
* Android
* BlackBerry 10
* iOS
* Windows Phone 7 e 8
* Windows 8
## Metodi
* splashscreen
* splashscreen.Hide
### Stranezze Android
Nel vostro config. xml, è necessario aggiungere le seguenti preferenze:
`<preference name="SplashScreen" value="foo" />` `<preference name="SplashScreenDelay" value="10000" />`
Dove foo è il nome del file splashscreen, preferibilmente un file 9 patch. Assicurati di aggiungere i tuoi file splashcreen res/xml nella directory sotto cartelle appropriate. Il secondo parametro rappresenta quanto tempo lo splashscreen apparirà in millisecondi. Il valore predefinito è 3000 ms. Per ulteriori informazioni, vedere [icone e schermate iniziali][1] .
[1]: http://cordova.apache.org/docs/en/edge/config_ref_images.md.html
## splashscreen.Hide
Respingere la schermata iniziale.
Navigator.SplashScreen.Hide();
### BlackBerry 10, WP8, iOS Quirk
Il `config.xml` di file `AutoHideSplashScreen` impostazione deve essere `false` . Per ritardare nascondendo la schermata iniziale per due secondi, aggiungere un timer ad esempio nel `deviceready` gestore di evento:
setTimeout(function() {navigator.splashscreen.hide();
}, 2000);
## splashscreen
Visualizza la schermata iniziale.
Navigator.SplashScreen.Show();
L'applicazione non può chiamare `navigator.splashscreen.show()` fino a quando ha iniziato l'app e il `deviceready` ha generato l'evento. Ma poiché in genere la schermata iniziale è destinata ad essere visibile prima app ha iniziato, che sembrerebbe per sconfiggere lo scopo della schermata iniziale. Fornendo qualche configurazione in `config.xml` verrà automaticamente `show` la schermata iniziale subito dopo il lancio dell'app e prima che completamente ha iniziato e ha ricevuto il `deviceready` evento. Per ulteriori informazioni su facendo questa configurazione, vedere [icone e schermate iniziali][1] . Per questo motivo, è improbabile che dovete chiamare `navigator.splashscreen.show()` per rendere la schermata visibile per avvio di app.

View File

@@ -1,74 +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.
-->
# org.apache.cordova.splashscreen
このプラグインが表示され、アプリケーションの起動中にスプラッシュ スクリーンを非表示にします。
## インストール
cordova plugin add org.apache.cordova.splashscreen
## サポートされているプラットフォーム
* アマゾン火 OS
* アンドロイド
* ブラックベリー 10
* iOS
* Windows Phone 7 と 8
* Windows 8
## メソッド
* splashscreen.show
* splashscreen.hide
### Android の癖
あなたの config.xml を以下の設定を追加する必要があります。
`<preference name="SplashScreen" value="foo" />` `<preference name="SplashScreenDelay" value="10000" />`
Foo ができれば 9 パッチファイル splashscreen ファイルの名前です。 解像度/xml ディレクトリの適切なフォルダーの下に splashcreen ファイルを追加することを確認します。 2 番目のパラメーターは、スプラッシュ ・ スクリーンがの表示時間 (ミリ秒単位) を表します。 デフォルトでは 3000 ミリ秒です。 詳細については、[アイコンとスプラッシュ画面][1]を参照してください。
[1]: http://cordova.apache.org/docs/en/edge/config_ref_images.md.html
## splashscreen.hide
スプラッシュ スクリーンを閉じます。
navigator.splashscreen.hide();
### ブラックベリー 10、WP8、iOS の気まぐれ
`config.xml`ファイルの `AutoHideSplashScreen` 設定する必要があります `false` 。 遅延を 2 秒間スプラッシュ スクリーンを非表示、タイマーを追加しますで次のように `deviceready` イベント ハンドラー。
setTimeout(function() {navigator.splashscreen.hide();}, 2000年);
## splashscreen.show
スプラッシュ画面が表示されます。
navigator.splashscreen.show();
アプリケーションを呼び出すことはできません `navigator.splashscreen.show()` 、アプリが開始されるまで、 `deviceready` イベントが発生します。 しかし、以来、通常スプラッシュ画面アプリ開始前に表示するものですと思われる、スプラッシュ スクリーンの目的の敗北します。 いくつかの構成を提供する `config.xml` は自動的に `show` スプラッシュ画面、アプリを起動後すぐに、それが完全に起動し、受信する前に、 `deviceready` イベント。 詳細についてはこの構成を行うには、[アイコンとスプラッシュ画面][1]を参照してください。 このような理由から、それは可能性を呼び出す必要があります `navigator.splashscreen.show()` アプリ起動時のスプラッシュ画面を見やすくします。

View File

@@ -1,75 +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.
-->
# org.apache.cordova.splashscreen
이 플러그인은 표시 하 고 응용 프로그램 실행 하는 동안 시작 화면을 숨깁니다.
## 설치
cordova plugin add org.apache.cordova.splashscreen
## 지원 되는 플랫폼
* 아마존 화재 운영 체제
* 안 드 로이드
* 블랙베리 10
* iOS
* Windows Phone 7과 8
* 윈도우 8
## 메서드
* splashscreen.show
* splashscreen.hide
### 안 드 로이드 단점
당신의 config.xml에 다음 환경 설정에 추가 해야 합니다.
`<preference name="SplashScreen" value="foo" />` `<preference name="SplashScreenDelay" value="10000" />`
여기서 foo splashscreen 파일, 선호 9 패치 파일의 이름입니다. 적절 한 폴더 아래 res/xml 디렉토리에 splashcreen 파일을 추가 해야 합니다. 두 번째 매개 변수는 splashscreen 얼마나 밀리초 단위로 표시 됩니다 나타냅니다. 3000 ms 기본값으로 사용 됩니다. 자세한 내용은 [아이콘 및 시작 화면을][1] 참조 하십시오.
[1]: http://cordova.apache.org/docs/en/edge/config_ref_images.md.html
## splashscreen.hide
시작 화면을 닫습니다.
navigator.splashscreen.hide();
### 블랙베리 10, WP8, iOS 특질
`config.xml`파일의 `AutoHideSplashScreen` 설정을 해야 합니다 `false` . 2 초 동안 시작 화면을 숨기고 지연에 다음과 같이 타이머 추가 `deviceready` 이벤트 처리기:
setTimeout(function() {navigator.splashscreen.hide();
}, 2000);
## splashscreen.show
시작 화면을 표시합니다.
navigator.splashscreen.show();
응용 프로그램 호출할 수 없습니다 `navigator.splashscreen.show()` 응용 프로그램은 시작 될 때까지 및 `deviceready` 이벤트를 해 고 했다. 하지만 그 스플래시 스크린의 목적 것 같다 일반적으로 시작 화면이 당신의 애플 리 케이 션 시작 하기 전에 표시 될 운명이 다, 이후. 몇 가지 구성을 제공 `config.xml` 자동으로 `show` 시작 화면 응용 프로그램 실행 후 즉시 및 그것은 완벽 하 게 시작 하 고 받은 전에 `deviceready` 이벤트. 이 구성 하 고 자세한 내용은 [아이콘 및 시작 화면을][1] 참조 하십시오. 이러한 이유로, 그것은 가능성이 호출 해야 `navigator.splashscreen.show()` 시작 화면은 응용 프로그램 시작에 대 한 표시 되도록 합니다.

View File

@@ -1,75 +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.
-->
# org.apache.cordova.splashscreen
Ten plugin wyświetla i ukrywa ekran powitalny podczas uruchamiania aplikacji.
## Instalacja
cordova plugin add org.apache.cordova.splashscreen
## Obsługiwane platformy
* Amazon Fire OS
* Android
* BlackBerry 10
* iOS
* Windows Phone 7 i 8
* Windows 8
## Metody
* splashscreen.show
* splashscreen.Hide
### Dziwactwa Androida
W pliku config.xml musisz dodać następujące preferencje:
`<preference name="SplashScreen" value="foo" />` `<preference name="SplashScreenDelay" value="10000" />`
Gdzie foo jest nazwą pliku ekranu powitalnego, najlepiej 9 łatce. Upewnij się dodać pliki splashcreen do katalogu res/xml w odpowiednich folderach. Drugi parametr reprezentuje, jak długo ekranu powitalnego pojawi się w milisekundach. Domyślnie 3000 ms. Aby uzyskać więcej informacji, zobacz [ikony i ekrany powitalne w aplikacjach][1] .
[1]: http://cordova.apache.org/docs/en/edge/config_ref_images.md.html
## splashscreen.Hide
Odrzucić ten opryskaæ têcza.
Navigator.splashscreen.Hide();
### Jeżyna 10, WP8, iOS dziwactwo
`config.xml`Pliku `AutoHideSplashScreen` ustawienie musi być `false` . Opóźnienia, ukrywanie ekranu powitalnego przez dwie sekundy, dodać timer następujących w `deviceready` obsługa zdarzeń:
setTimeout(function() {navigator.splashscreen.hide();
}, 2000);
## splashscreen.show
Wyświetla ekran powitalny.
Navigator.splashscreen.show();
Aplikacja nie może wywołać `navigator.splashscreen.show()` aż aplikacja została uruchomiona i `deviceready` imprezy został zwolniony. Ale ponieważ zazwyczaj opryskać tęcza ma być widoczne przed rozpoczęciem aplikacji, wydaje się sprzeczne z celem ekranu powitalnego. Dostarczanie niektórych konfiguracji w `config.xml` będzie automatycznie `show` ekran powitalny, natychmiast po uruchomienie aplikacji i przed pełni rozpoczął i otrzymał `deviceready` zdarzenie. Aby uzyskać więcej informacji na robienie tej konfiguracji, zobacz [ikony i ekrany powitalne w aplikacjach][1] . Z tego powodu, jest mało prawdopodobne, należy zadzwonić `navigator.splashscreen.show()` Aby wyświetlić ekran powitalny dla uruchamiania aplikacji.

View File

@@ -1,75 +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.
-->
# org.apache.cordova.splashscreen
Этот плагин отображает и скрывает экран-заставку при запуске приложения.
## Установка
cordova plugin add org.apache.cordova.splashscreen
## Поддерживаемые платформы
* Amazon Fire OS
* Android
* BlackBerry 10
* iOS
* Windows Phone 7 и 8
* Windows 8
## Методы
* splashscreen.show
* splashscreen.hide
### Особенности Android
В вашем файле config.xml необходимо добавить следующие настройки:
`<preference name="SplashScreen" value="foo" />` `<preference name="SplashScreenDelay" value="10000" />`
Где foo это имя файла splashscreen, желательно 9 заплатку. Убедитесь в том добавить ваши splashcreen файлы в папку res/xml в соответствующие папки. Второй параметр представляет, как долго splashscreen появится в миллисекундах. По умолчанию он 3000 МС. Увидеть [иконки и заставки][1] для получения дополнительной информации.
[1]: http://cordova.apache.org/docs/en/edge/config_ref_images.md.html
## splashscreen.hide
Закройте экран-заставка.
Navigator.SplashScreen.Hide();
### Особенности BlackBerry 10, WP8, iOS
`config.xml`Файла `AutoHideSplashScreen` должен быть `false` . Для задержки скрытия заставки на две секунды, добавить таймер, например в `deviceready` обработчик событий:
setTimeout(function() {navigator.splashscreen.hide();
}, 2000);
## splashscreen.show
Отображает экран-заставку.
Navigator.SplashScreen.Show();
Ваше приложение не может вызвать `navigator.splashscreen.show()` до тех пор, пока приложение началась и `deviceready` событие инициировано. Но поскольку обычно экран-заставка должен быть видимым до начала вашего приложения, что казалось бы поражение цели экрана-заставки. Предоставление некоторых конфигурации в `config.xml` будет автоматически `show` экран-заставку сразу же после запуска вашего приложения и перед его полностью запущен и получил `deviceready` событие. Увидеть [иконки и заставки][1] для получения дополнительной информации на делать этой конфигурации. По этой причине маловероятно, вам нужно вызвать `navigator.splashscreen.show()` для отображения экрана-заставки для запуска приложения.

View File

@@ -1,74 +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.
-->
# org.apache.cordova.splashscreen
這個外掛程式顯示和隱藏在應用程式啟動期間的初始螢幕。
## 安裝
cordova plugin add org.apache.cordova.splashscreen
## 支援的平臺
* 亞馬遜火 OS
* Android 系統
* 黑莓 10
* iOS
* Windows Phone 7 和 8
* Windows 8
## 方法
* splashscreen.show
* splashscreen.hide
### Android 的怪癖
在你的 config.xml您需要添加以下優惠
`<preference name="SplashScreen" value="foo" />` `<preference name="SplashScreenDelay" value="10000" />`
美孚在哪裡閃屏檔,最好是 9 修補程式檔的名稱。 請確保您的 splashcreen 檔添加到 res/xml 目錄下相應的資料夾。 第二個參數表示多久閃屏會顯示以毫秒為單位。 它將預設為 3000 毫秒。 有關更多資訊,請參見[圖示和啟動畫面][1]。
[1]: http://cordova.apache.org/docs/en/edge/config_ref_images.md.html
## splashscreen.hide
解雇的閃屏。
navigator.splashscreen.hide()
### 黑莓 10WP8iOS 怪癖
`config.xml`檔的 `AutoHideSplashScreen` 設置必須為 `false` 。 若要延遲兩秒鐘隱藏的閃屏,添加如下所示在計時器 `deviceready` 事件處理常式:
setTimeout(function() {navigator.splashscreen.hide() }2000年
## splashscreen.show
顯示初始螢幕。
navigator.splashscreen.show()
您的應用程式無法調用 `navigator.splashscreen.show()` 直到應用程式已經開始, `deviceready` 觸發了事件。 但是,由於通常的閃屏為了是可見的在您的應用程式啟動之前,這似乎會打敗閃屏的目的。 提供一些配置在 `config.xml` 將自動 `show` 閃屏您的應用程式啟動後立即和之前它已經完全起步並收到 `deviceready` 事件。 做這種配置的詳細資訊,請參閱[圖示和啟動畫面][1]。 出於這個原因,它不太可能您需要調用 `navigator.splashscreen.show()` ,使初始螢幕可見為應用程式啟動。

51
package.json Normal file
View File

@@ -0,0 +1,51 @@
{
"name": "cordova-plugin-splashscreen",
"version": "5.0.4-dev",
"description": "Cordova Splashscreen Plugin",
"types": "./types/index.d.ts",
"cordova": {
"id": "cordova-plugin-splashscreen",
"platforms": [
"android",
"ubuntu",
"ios",
"windows",
"browser"
]
},
"repository": "github:apache/cordova-plugin-splashscreen",
"bugs": "https://github.com/apache/cordova-plugin-splashscreen/issues",
"keywords": [
"cordova",
"splashscreen",
"ecosystem:cordova",
"cordova-android",
"cordova-ios",
"cordova-windows"
],
"scripts": {
"test": "npm run jshint",
"jshint": "node node_modules/jshint/bin/jshint www && node node_modules/jshint/bin/jshint src && node node_modules/jshint/bin/jshint tests"
},
"engines": {
"cordovaDependencies": {
"2.0.0": {
"cordova-android": ">=3.6.0"
},
"4.0.0": {
"cordova-android": ">=3.6.0",
"cordova-windows": ">=4.4.0"
},
"6.0.0": {
"cordova": ">100"
}
},
"node": ">=6.0.0"
},
"author": "Apache Software Foundation",
"license": "Apache-2.0",
"devDependencies": {
"jshint": "^2.6.0"
},
"homepage": "https://cordova.apache.org/"
}

View File

@@ -19,8 +19,8 @@
-->
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
id="org.apache.cordova.splashscreen"
version="0.3.5">
id="cordova-plugin-splashscreen"
version="5.0.4-dev">
<name>Splashscreen</name>
<description>Cordova Splashscreen Plugin</description>
<license>Apache 2.0</license>
@@ -28,6 +28,10 @@
<repo>https://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen.git</repo>
<issue>https://issues.apache.org/jira/browse/CB/component/12320653</issue>
<engines>
<engine name="cordova-android" version=">=3.6.0" /><!-- Requires CordovaPlugin.preferences -->
<engine name="cordova-windows" version=">=4.4.0" />
</engines>
<js-module src="www/splashscreen.js" name="SplashScreen">
<clobbers target="navigator.splashscreen" />
@@ -37,28 +41,16 @@
<platform name="android">
<config-file target="res/xml/config.xml" parent="/*">
<feature name="SplashScreen">
<param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen"/>
<param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen"/>
<param name="onload" value="true"/>
</feature>
</config-file>
<edit-config file="AndroidManifest.xml" target="/manifest/application/activity[@android:name='MainActivity']" mode="merge">
<activity android:theme="@style/Theme.AppStart" android:windowSoftInputMode="adjustResize"/>
</edit-config>
<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" />
<resource-file src="src/android/res/values/style.xml"
target="res/values/style.xml" />
</platform>
<!-- ios -->
@@ -70,56 +62,24 @@
</feature>
</config-file>
<header-file src="src/ios/CDVSplashScreen.h" />
<source-file src="src/ios/CDVSplashScreen.m" />
<header-file src="src/ios/CDVSplashScreen.h" />
<source-file src="src/ios/CDVSplashScreen.m" />
<header-file src="src/ios/CDVViewController+SplashScreen.h" />
<source-file src="src/ios/CDVViewController+SplashScreen.m" />
<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>
<!-- wp7 -->
<platform name="wp7">
<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" />
</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" />
</platform>
<!-- windows8 -->
<platform name="windows8">
<js-module src="www/windows8/SplashScreenProxy.js" name="SplashScreenProxy">
<merges target="" />
<!-- windows -->
<platform name="windows">
<js-module src="www/windows/SplashScreenProxy.js" name="SplashScreenProxy">
<runs />
</js-module>
</platform>
<!-- tizen -->
<platform name="tizen">
<js-module src="src/tizen/SplashScreenProxy.js" name="SplashScreenProxy">
<!-- browser -->
<platform name="browser">
<js-module src="src/browser/SplashScreenProxy.js" name="SplashScreenProxy">
<runs />
</js-module>
</platform>

View File

@@ -19,20 +19,161 @@
package org.apache.cordova.splashscreen;
import android.app.Dialog;
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.Build;
import android.os.Handler;
import android.view.Display;
import android.view.Gravity;
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;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CordovaWebView;
import org.json.JSONArray;
import org.json.JSONException;
public class SplashScreen extends CordovaPlugin {
private static final String LOG_TAG = "SplashScreen";
// 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 final int DEFAULT_FADE_DURATION = 500;
private static Dialog splashDialog;
private static ProgressDialog spinnerDialog;
private static boolean firstShow = true;
private static boolean lastHideAfterDelay; // https://issues.apache.org/jira/browse/CB-9094
/**
* Displays the splash drawable.
*/
private ImageView splashImageView;
/**
* Remember last device orientation to detect orientation changes.
*/
private int orientation;
// Helper to be compile-time compatible with both Cordova 3.x and 4.x.
private View getView() {
try {
return (View)webView.getClass().getMethod("getView").invoke(webView);
} catch (Exception e) {
return (View)webView;
}
}
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
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) {
if (action.equals("hide")) {
this.webView.postMessage("splashscreen", "hide");
} else if (action.equals("show")){
this.webView.postMessage("splashscreen", "show");
protected void pluginInitialize() {
if (HAS_BUILT_IN_SPLASH_SCREEN) {
return;
}
else {
// Make WebView invisible while loading URL
// CB-11326 Ensure we're calling this on UI thread
cordova.getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
getView().setVisibility(View.INVISIBLE);
}
});
int drawableId = getSplashId();
// Save initial orientation.
orientation = cordova.getActivity().getResources().getConfiguration().orientation;
if (firstShow) {
boolean autoHide = preferences.getBoolean("AutoHideSplashScreen", true);
showSplashScreen(autoHide);
}
if (preferences.getBoolean("SplashShowOnlyFirstTime", true)) {
firstShow = false;
}
}
/**
* Shorter way to check value of "SplashMaintainAspectRatio" preference.
*/
private boolean isMaintainAspectRatio () {
return preferences.getBoolean("SplashMaintainAspectRatio", false);
}
private int getFadeDuration () {
int fadeSplashScreenDuration = preferences.getBoolean("FadeSplashScreen", true) ?
preferences.getInteger("FadeSplashScreenDuration", DEFAULT_FADE_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) {
return;
}
// hide the splash screen to avoid leaking a window
this.removeSplashScreen(true);
}
@Override
public void onDestroy() {
if (HAS_BUILT_IN_SPLASH_SCREEN) {
return;
}
// hide the splash screen to avoid leaking a window
this.removeSplashScreen(true);
// If we set this to true onDestroy, we lose track when we go from page to page!
//firstShow = true;
}
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if (action.equals("hide")) {
cordova.getActivity().runOnUiThread(new Runnable() {
public void run() {
webView.postMessage("splashscreen", "hide");
}
});
} else if (action.equals("show")) {
cordova.getActivity().runOnUiThread(new Runnable() {
public void run() {
webView.postMessage("splashscreen", "show");
}
});
} else {
return false;
}
@@ -40,4 +181,238 @@ public class SplashScreen extends CordovaPlugin {
return true;
}
@Override
public Object onMessage(String id, Object data) {
if (HAS_BUILT_IN_SPLASH_SCREEN) {
return null;
}
if ("splashscreen".equals(id)) {
if ("hide".equals(data.toString())) {
this.removeSplashScreen(false);
} else {
this.showSplashScreen(false);
}
} else if ("spinner".equals(id)) {
if ("stop".equals(data.toString())) {
getView().setVisibility(View.VISIBLE);
}
} else if ("onReceivedError".equals(id)) {
this.spinnerStop();
}
return null;
}
// Don't add @Override so that plugin still compiles on 3.x.x for a while
public void onConfigurationChanged(Configuration newConfig) {
if (newConfig.orientation != orientation) {
orientation = newConfig.orientation;
// Splash drawable may change with orientation, so reload it.
if (splashImageView != null) {
int drawableId = getSplashId();
if (drawableId != 0) {
splashImageView.setImageDrawable(cordova.getActivity().getResources().getDrawable(drawableId));
}
}
}
}
private void removeSplashScreen(final boolean forceHideImmediately) {
cordova.getActivity().runOnUiThread(new Runnable() {
public void run() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
cordova.getActivity().getWindow().setNavigationBarColor(Color.parseColor("#000000"));
}
if (splashDialog != null && splashImageView != null && splashDialog.isShowing()) {//check for non-null splashImageView, see https://issues.apache.org/jira/browse/CB-12277
final int fadeSplashScreenDuration = getFadeDuration();
// CB-10692 If the plugin is being paused/destroyed, skip the fading and hide it immediately
if (fadeSplashScreenDuration > 0 && forceHideImmediately == false) {
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) {
spinnerStop();
}
@Override
public void onAnimationEnd(Animation animation) {
if (splashDialog != null && splashImageView != null && splashDialog.isShowing()) {//check for non-null splashImageView, see https://issues.apache.org/jira/browse/CB-12277
splashDialog.dismiss();
splashDialog = null;
splashImageView = null;
}
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
} else {
spinnerStop();
splashDialog.dismiss();
splashDialog = null;
splashImageView = null;
}
}
}
});
}
/**
* Shows the splash screen over the full Activity
*/
@SuppressWarnings("deprecation")
private void showSplashScreen(final boolean hideAfterDelay) {
final int splashscreenTime = preferences.getInteger("SplashScreenDelay", DEFAULT_SPLASHSCREEN_DURATION);
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;
}
if (drawableId == 0 || (splashscreenTime <= 0 && hideAfterDelay)) {
return;
}
cordova.getActivity().runOnUiThread(new Runnable() {
public void run() {
// Get reference to display
Display display = cordova.getActivity().getWindowManager().getDefaultDisplay();
Context context = webView.getContext();
// Use an ImageView to render the image because of its flexible scaling options.
splashImageView = new ImageView(context);
splashImageView.setImageResource(drawableId);
LayoutParams layoutParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
splashImageView.setLayoutParams(layoutParams);
splashImageView.setMinimumHeight(display.getHeight());
splashImageView.setMinimumWidth(display.getWidth());
// TODO: Use the background color of the webView's parent instead of using the preference.
splashImageView.setBackgroundColor(preferences.getInteger("backgroundColor", Color.BLACK));
if (isMaintainAspectRatio()) {
// CENTER_CROP scale mode is equivalent to CSS "background-size:cover"
splashImageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
}
else {
// FIT_XY scales image non-uniformly to fit into image view.
splashImageView.setScaleType(ImageView.ScaleType.FIT_XY);
}
// 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
boolean fullscreen = preferences.getBoolean("SplashFullScreen", true);
if (fullscreen || ((cordova.getActivity().getWindow().getAttributes().flags & WindowManager.LayoutParams.FLAG_FULLSCREEN)
== WindowManager.LayoutParams.FLAG_FULLSCREEN)) {
splashDialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
splashDialog.setContentView(splashImageView);
splashDialog.setCancelable(false);
splashDialog.show();
if (preferences.getBoolean("ShowSplashScreenSpinner", true)) {
spinnerStart();
}
// Set Runnable to remove splash screen just in case
if (hideAfterDelay) {
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
if (lastHideAfterDelay) {
removeSplashScreen(false);
}
}
}, effectiveSplashDuration);
}
}
});
}
// Show only spinner in the center of the screen
private void spinnerStart() {
cordova.getActivity().runOnUiThread(new Runnable() {
public void run() {
spinnerStop();
spinnerDialog = new ProgressDialog(webView.getContext());
spinnerDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface dialog) {
spinnerDialog = null;
}
});
spinnerDialog.setCancelable(false);
spinnerDialog.setIndeterminate(true);
RelativeLayout centeredLayout = new RelativeLayout(cordova.getActivity());
centeredLayout.setGravity(Gravity.CENTER);
centeredLayout.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
ProgressBar progressBar = new ProgressBar(webView.getContext());
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
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);
spinnerDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
spinnerDialog.show();
spinnerDialog.setContentView(centeredLayout);
}
});
}
private void spinnerStop() {
cordova.getActivity().runOnUiThread(new Runnable() {
public void run() {
if (spinnerDialog != null && spinnerDialog.isShowing()) {
spinnerDialog.dismiss();
spinnerDialog = null;
}
}
});
}
}

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.AppStart" parent="android:Theme">
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@drawable/screen</item>
</style>
</resources>

View File

@@ -1,28 +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.
*/
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);
}
};

View File

@@ -0,0 +1,170 @@
/*
*
* 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.
*
*/
// Default parameter values including image size can be changed in `config.xml`
var splashImageWidth = 170;
var splashImageHeight = 200;
var position = { x: 0, y: 0, width: splashImageWidth, height: splashImageHeight };
var localSplash; // the image to display
var localSplashImage;
var bgColor = "#464646";
var imageSrc = '/img/logo.png';
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);
position.height = position.width * (splashImageHeight / splashImageWidth);
localSplash.style.width = window.innerWidth + "px";
localSplash.style.height = window.innerHeight + "px";
localSplash.style.top = "0px";
localSplash.style.left = "0px";
localSplashImage.style.top = "50%";
localSplashImage.style.left = "50%";
localSplashImage.style.height = position.height + "px";
localSplashImage.style.width = position.width + "px";
localSplashImage.style.marginTop = (-position.height / 2) + "px";
localSplashImage.style.marginLeft = (-position.width / 2) + "px";
}
function onResize() {
updateImageLocation();
}
var SplashScreen = {
setBGColor: function (cssBGColor) {
bgColor = cssBGColor;
if (localSplash) {
localSplash.style.backgroundColor = bgColor;
}
},
show: function () {
if(!localSplash) {
window.addEventListener("resize", onResize, false);
localSplash = document.createElement("div");
localSplash.style.backgroundColor = bgColor;
localSplash.style.position = "absolute";
localSplash.style["z-index"] = "99999";
localSplashImage = document.createElement("img");
localSplashImage.src = imageSrc;
localSplashImage.style.position = "absolute";
updateImageLocation();
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) {
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;
}
}
};
/**
* Reads preferences via ConfigHelper and substitutes default parameters.
*/
function readPreferencesFromCfg(cfg) {
try {
var value = cfg.getPreferenceValue('ShowSplashScreen');
if(typeof value != 'undefined') {
showSplashScreen = value === 'true';
}
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 occurred on loading preferences from config.xml: ' + JSON.stringify(e);
console.error(msg);
}
}
/**
* Shows and hides splashscreen if it is enabled, with a delay according the current preferences.
*/
function showAndHide() {
if(showSplashScreen) {
SplashScreen.show();
window.setTimeout(function() {
SplashScreen.hide();
}, splashScreenDelay);
}
}
/**
* 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);
if (autoHideSplashScreen) {
showAndHide();
} else {
SplashScreen.show();
}
}, function(err) {
console.error(err);
});
})();
module.exports = SplashScreen;
require("cordova/exec/proxy").add("SplashScreen", SplashScreen);

View File

@@ -23,10 +23,12 @@
typedef struct {
BOOL iPhone;
BOOL iPad;
BOOL iPhone4;
BOOL iPhone5;
BOOL iPhone6;
BOOL iPhone6Plus;
BOOL retina;
BOOL iPhoneX;
} CDV_iOSDevice;
@@ -35,6 +37,7 @@ typedef struct {
UIImageView* _imageView;
NSString* _curImageName;
BOOL _visible;
BOOL _destroyed;
}
- (void)show:(CDVInvokedUrlCommand*)command;

View File

@@ -20,15 +20,17 @@
#import "CDVSplashScreen.h"
#import <Cordova/CDVViewController.h>
#import <Cordova/CDVScreenOrientationDelegate.h>
#import "CDVViewController+SplashScreen.h"
#define kSplashScreenDurationDefault 0.25f
#define kSplashScreenDurationDefault 3000.0f
#define kFadeDurationDefault 500.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];
}
@@ -40,7 +42,7 @@
- (void)hide:(CDVInvokedUrlCommand*)command
{
[self setVisible:NO];
[self setVisible:NO andForce:YES];
}
- (void)pageDidLoad
@@ -68,14 +70,29 @@
* gray = UIActivityIndicatorViewStyleGray
*
*/
// 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 || device.iPhoneX) ?
[(CDVViewController *)self.viewController shouldAutorotateDefaultValue] :
NO;
[(CDVViewController *)self.viewController setEnabledAutorotation:autorotateValue];
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;
}
@@ -93,7 +110,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];
}
@@ -103,10 +121,20 @@
[parentView addObserver:self forKeyPath:@"bounds" options:0 context:nil];
[self updateImage];
_destroyed = NO;
}
- (void)hideViews
{
[_imageView setAlpha:0];
[_activityView setAlpha:0];
}
- (void)destroyViews
{
_destroyed = YES;
[(CDVViewController *)self.viewController setEnabledAutorotation:[(CDVViewController *)self.viewController shouldAutorotateDefaultValue]];
[_imageView removeFromSuperview];
[_activityView removeFromSuperview];
_imageView = nil;
@@ -114,61 +142,118 @@
_curImageName = nil;
self.viewController.view.userInteractionEnabled = YES; // re-enable user interaction upon completion
[self.viewController.view removeObserver:self forKeyPath:@"frame"];
[self.viewController.view removeObserver:self forKeyPath:@"bounds"];
@try {
[self.viewController.view removeObserver:self forKeyPath:@"frame"];
[self.viewController.view removeObserver:self forKeyPath:@"bounds"];
}
@catch (NSException *exception) {
// When reloading the page from a remotely connected Safari, there
// are no observers, so the removeObserver method throws an exception,
// that we can safely ignore.
// Alternatively we can check whether there are observers before calling removeObserver
}
}
- (CDV_iOSDevice) getCurrentDevice
{
CDV_iOSDevice device;
UIScreen* mainScreen = [UIScreen mainScreen];
CGFloat mainScreenHeight = mainScreen.bounds.size.height;
CGFloat mainScreenWidth = mainScreen.bounds.size.width;
int limit = MAX(mainScreenHeight,mainScreenWidth);
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
// 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;
}
- (BOOL) isUsingCDVLaunchScreen {
NSString* launchStoryboardName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"UILaunchStoryboardName"];
if (launchStoryboardName) {
return ([launchStoryboardName isEqualToString:@"CDVLaunchScreen"]);
} else {
return NO;
}
}
- (NSString*)getImageName:(UIInterfaceOrientation)currentOrientation delegate:(id<CDVScreenOrientationDelegate>)orientationDelegate device:(CDV_iOSDevice)device
{
// Use UILaunchImageFile if specified in plist. Otherwise, use Default.
NSString* imageName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"UILaunchImageFile"];
// detect if we are using CB-9762 Launch Storyboard; if so, return the associated image instead
if ([self isUsingCDVLaunchScreen]) {
imageName = @"LaunchStoryboard";
return imageName;
}
NSUInteger supportedOrientations = [orientationDelegate supportedInterfaceOrientations];
// Checks to see if the developer has locked the orientation to use only one of Portrait or Landscape
BOOL supportsLandscape = (supportedOrientations & UIInterfaceOrientationMaskLandscape);
BOOL supportsPortrait = (supportedOrientations & UIInterfaceOrientationMaskPortrait || supportedOrientations & UIInterfaceOrientationMaskPortraitUpsideDown);
// 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 || device.iPhoneX ) {
if(device.iPhone6Plus) {
imageName = [imageName stringByAppendingString:@"-800"];
} else {
imageName = [imageName stringByAppendingString:@"-1100"];
}
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 || device.iPhoneX)
{ // supports landscape
if (isOrientationLocked)
{
imageName = [imageName stringByAppendingString:(supportsLandscape ? @"-Landscape" : @"")];
} else {
switch (currentOrientation) {
}
else
{
switch (currentOrientation)
{
case UIInterfaceOrientationLandscapeLeft:
case UIInterfaceOrientationLandscapeRight:
imageName = [imageName stringByAppendingString:@"-Landscape"];
@@ -177,18 +262,27 @@
break;
}
}
imageName = [imageName stringByAppendingString:@"-736h"];
} else if (device.iPad) { // supports landscape
if (isOrientationLocked) {
imageName = [imageName stringByAppendingString:(supportsLandscape ? @"-Landscape" : @"-Portrait")];
if (device.iPhoneX) {
imageName = [imageName stringByAppendingString:@"-2436h"];
} else {
switch (currentOrientation) {
imageName = [imageName stringByAppendingString:@"-736h"];
}
}
else if (device.iPad)
{ // supports landscape
if (isOrientationLocked)
{
imageName = [imageName stringByAppendingString:(supportsLandscape ? @"-Landscape" : @"-Portrait")];
}
else
{
switch (currentOrientation)
{
case UIInterfaceOrientationLandscapeLeft:
case UIInterfaceOrientationLandscapeRight:
imageName = [imageName stringByAppendingString:@"-Landscape"];
break;
case UIInterfaceOrientationPortrait:
case UIInterfaceOrientationPortraitUpsideDown:
default:
@@ -197,36 +291,85 @@
}
}
}
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:self.viewController.interfaceOrientation 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);
}
}
- (void)updateBounds
{
if ([self isUsingCDVLaunchScreen]) {
// CB-9762's launch screen expects the image to fill the screen and be scaled using AspectFill.
CGSize viewportSize = [UIApplication sharedApplication].delegate.window.bounds.size;
_imageView.frame = CGRectMake(0, 0, viewportSize.width, viewportSize.height);
_imageView.contentMode = UIViewContentModeScaleAspectFill;
return;
}
UIImage* img = _imageView.image;
CGRect imgBounds = (img) ? CGRectMake(0, 0, img.size.width, img.size.height) : CGRectZero;
CGSize screenSize = [self.viewController.view convertRect:[UIScreen mainScreen].bounds fromView:nil].size;
UIInterfaceOrientation orientation = self.viewController.interfaceOrientation;
UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;
CGAffineTransform imgTransform = CGAffineTransformIdentity;
/* If and only if an iPhone application is landscape-only as per
@@ -234,26 +377,35 @@
* landscape. In this case the image must be rotated in order to appear
* correctly.
*/
if (UIInterfaceOrientationIsLandscape(orientation) && !CDV_IsIPad()) {
CDV_iOSDevice device = [self getCurrentDevice];
if (UIInterfaceOrientationIsLandscape(orientation) && !device.iPhone6Plus && !device.iPad && !device.iPhoneX)
{
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;
@@ -266,41 +418,96 @@
- (void)setVisible:(BOOL)visible
{
if (visible == _visible) {
return;
}
_visible = visible;
[self setVisible:visible andForce:NO];
}
id fadeSplashScreenValue = [self.commandDelegate.settings objectForKey:[@"FadeSplashScreen" lowercaseString]];
id fadeSplashScreenDuration = [self.commandDelegate.settings objectForKey:[@"FadeSplashScreenDuration" lowercaseString]];
- (void)setVisible:(BOOL)visible andForce:(BOOL)force
{
if (visible != _visible || force)
{
_visible = visible;
float fadeDuration = fadeSplashScreenDuration == nil ? kSplashScreenDurationDefault : [fadeSplashScreenDuration floatValue];
id fadeSplashScreenValue = [self.commandDelegate.settings objectForKey:[@"FadeSplashScreen" lowercaseString]];
id fadeSplashScreenDuration = [self.commandDelegate.settings objectForKey:[@"FadeSplashScreenDuration" lowercaseString]];
if ((fadeSplashScreenValue == nil) || ![fadeSplashScreenValue boolValue]) {
fadeDuration = 0;
}
float fadeDuration = fadeSplashScreenDuration == nil ? kFadeDurationDefault : [fadeSplashScreenDuration floatValue];
// Never animate the showing of the splash screen.
if (visible) {
if (_imageView == nil) {
[self createViews];
id splashDurationString = [self.commandDelegate.settings objectForKey: [@"SplashScreenDelay" lowercaseString]];
float splashDuration = splashDurationString == nil ? kSplashScreenDurationDefault : [splashDurationString floatValue];
id autoHideSplashScreenValue = [self.commandDelegate.settings objectForKey:[@"AutoHideSplashScreen" lowercaseString]];
BOOL autoHideSplashScreen = true;
if (autoHideSplashScreenValue != nil) {
autoHideSplashScreen = [autoHideSplashScreenValue boolValue];
}
if (!autoHideSplashScreen) {
// CB-10412 SplashScreenDelay does not make sense if the splashscreen is hidden manually
splashDuration = 0;
}
if (fadeSplashScreenValue == nil)
{
fadeSplashScreenValue = @"true";
}
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;
// [CB-10562] AutoHideSplashScreen may be "true" but we should still be able to hide the splashscreen manually.
if (!autoHideSplashScreen || force) {
effectiveSplashDuration = (fadeDuration) / 1000;
} else {
effectiveSplashDuration = (splashDuration - fadeDuration) / 1000;
}
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (uint64_t) effectiveSplashDuration * NSEC_PER_SEC), dispatch_get_main_queue(), CFBridgingRelease(CFBridgingRetain(^(void) {
if (!_destroyed) {
[UIView transitionWithView:self.viewController.view
duration:(fadeDuration / 1000)
options:UIViewAnimationOptionTransitionNone
animations:^(void) {
[weakSelf hideViews];
}
completion:^(BOOL finished) {
// Always destroy views, otherwise you could have an
// invisible splashscreen that is overlayed over your active views
// which causes that no touch events are passed
if (!_destroyed) {
[weakSelf destroyViews];
// TODO: It might also be nice to have a js event happen here -jm
}
}
];
}
})));
}
} else if (fadeDuration == 0) {
[self destroyViews];
} else {
[UIView transitionWithView:self.viewController.view
duration:fadeDuration
options:UIViewAnimationOptionTransitionNone
animations:^(void) {
[_imageView setAlpha:0];
[_activityView setAlpha:0];
}
completion:^(BOOL finished) {
if (finished) {
[self destroyViews];
}
}
];
}
}

View File

@@ -0,0 +1,28 @@
/*
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.
*/
#import <Cordova/CDVViewController.h>
@interface CDVViewController (SplashScreen)
@property (nonatomic, assign) BOOL enabledAutorotation;
@property (nonatomic, readonly) BOOL shouldAutorotateDefaultValue;
@end

View File

@@ -0,0 +1,89 @@
/*
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.
*/
#import "CDVViewController+SplashScreen.h"
#import <objc/runtime.h>
@implementation CDVViewController (SplashScreen)
@dynamic enabledAutorotation;
- (void)setEnabledAutorotation:(BOOL)value
{
objc_setAssociatedObject(self,
@selector(enabledAutorotation),
[NSNumber numberWithBool:value],
OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
- (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];
}
+ (void)load
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
Class class = [self class];
SEL originalSelector = @selector(shouldAutorotate);
SEL swizzledSelector = @selector(splash_shouldAutorotate);
Method originalMethod = class_getInstanceMethod(class, originalSelector);
Method swizzledMethod = class_getInstanceMethod(class, swizzledSelector);
BOOL didAddMethod = class_addMethod(class,
originalSelector,
method_getImplementation(swizzledMethod),
method_getTypeEncoding(swizzledMethod));
if (didAddMethod) {
class_replaceMethod(class,
swizzledSelector,
method_getImplementation(originalMethod),
method_getTypeEncoding(originalMethod));
} else {
method_exchangeImplementations(originalMethod, swizzledMethod);
}
});
}
#pragma mark - Method Swizzling
- (BOOL)splash_shouldAutorotate
{
return self.enabledAutorotation;
}
- (BOOL)shouldAutorotateDefaultValue
{
return [self splash_shouldAutorotate];
}
@end

View File

@@ -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);
}

View File

@@ -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

View File

@@ -0,0 +1,39 @@
/*
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.
*/
using Microsoft.Phone.Info;
using System;
using System.Windows;
namespace WPCordovaClassLib.Cordova.Commands
{
public enum Resolutions { WVGA, WXGA, HD };
public static class ResolutionHelper
{
public static Resolutions CurrentResolution
{
get
{
switch (Application.Current.Host.Content.ScaleFactor)
{
case 100: return Resolutions.WVGA;
case 160: return Resolutions.WXGA;
case 150: return Resolutions.HD;
}
throw new InvalidOperationException("Unknown resolution");
}
}
}
}

View File

@@ -1,10 +1,10 @@
/*
/*
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.
@@ -41,127 +41,215 @@ namespace WPCordovaClassLib.Cordova.Commands
public class SplashScreen : BaseCommand
{
private Popup popup;
private bool autohide = true;
// Time until we dismiss the splashscreen
private int prefDelay = 3000;
// Whether we hide it by default
private bool prefAutoHide = true;
// Path to image to use
private string prefImagePath = "SplashScreenImage.jpg";
// static because autodismiss is only ever applied once, at app launch
// subsequent page loads should not cause the SplashScreen to be shown.
private static bool WasShown = false;
public SplashScreen()
{
Image SplashScreen = new Image();
BitmapImage splash_image = new BitmapImage();
splash_image.SetSource(Application.GetResourceStream(new Uri(@"SplashScreenImage.jpg", UriKind.Relative)).Stream);
SplashScreen.Source = splash_image;
LoadConfigPrefs();
Image SplashScreen = new Image()
{
Height = Application.Current.Host.Content.ActualHeight,
Width = Application.Current.Host.Content.ActualWidth,
Stretch = Stretch.Fill
};
var imageResource = GetSplashScreenImageResource();
if (imageResource != null)
{
BitmapImage splash_image = new BitmapImage();
splash_image.SetSource(imageResource.Stream);
SplashScreen.Source = splash_image;
}
// Instansiate the popup and set the Child property of Popup to SplashScreen
popup = new Popup() {IsOpen = false, Child = SplashScreen };
// Orient the popup accordingly
popup.HorizontalAlignment = HorizontalAlignment.Stretch;
popup.VerticalAlignment = VerticalAlignment.Center;
popup = new Popup() { IsOpen = false,
Child = SplashScreen,
HorizontalAlignment = HorizontalAlignment.Stretch,
VerticalAlignment = VerticalAlignment.Center
LoadConfigValues();
};
}
public override void OnInit()
{
// we only want to autoload the first time a page is loaded.
if (!WasShown)
// we only want to autoload on the first page load.
// but OnInit is called for every page load.
if (!SplashScreen.WasShown)
{
WasShown = true;
SplashScreen.WasShown = true;
show();
}
}
void LoadConfigValues()
private void LoadConfigPrefs()
{
StreamResourceInfo streamInfo = Application.GetResourceStream(new Uri("config.xml", UriKind.Relative));
if (streamInfo != null)
{
StreamReader sr = new StreamReader(streamInfo.Stream);
//This will Read Keys Collection for the xml file
XDocument document = XDocument.Parse(sr.ReadToEnd());
var preferences = from results in document.Descendants()
where (string)results.Attribute("name") == "AutoHideSplashScreen"
select (string)results.Attribute("value") == "true";
if (preferences.Count() > 0 && preferences.First() == false)
using (StreamReader sr = new StreamReader(streamInfo.Stream))
{
autohide = false;
//This will Read Keys Collection for the xml file
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();
bool bVal;
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();
int nVal;
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();
if (!String.IsNullOrEmpty(configImage))
{
prefImagePath = configImage;
}
}
}
}
private StreamResourceInfo GetSplashScreenImageResource()
{
// Get the base filename for the splash screen images
string imageName = System.IO.Path.GetFileNameWithoutExtension(prefImagePath);
Uri imageUri = null;
StreamResourceInfo imageResource = null;
// First, try to get a resolution-specific splashscreen
try
{
// Determine the device's resolution
switch (ResolutionHelper.CurrentResolution)
{
case Resolutions.HD:
imageUri = new Uri(imageName + ".screen-720p.jpg", UriKind.Relative);
break;
case Resolutions.WVGA:
imageUri = new Uri(imageName + ".screen-WVGA.jpg", UriKind.Relative);
break;
case Resolutions.WXGA:
default:
imageUri = new Uri(imageName + ".screen-WXGA.jpg", UriKind.Relative);
break;
}
imageResource = Application.GetResourceStream(imageUri);
}
catch (Exception)
{
// It's OK if we didn't get a resolution-specific image
}
// Fallback to the default image name without decoration
if (imageResource == null)
{
imageUri = new Uri(prefImagePath, UriKind.Relative);
imageResource = Application.GetResourceStream(imageUri);
}
if (imageUri != null) Debug.WriteLine("INFO :: SplashScreen: using image {0}", imageUri.OriginalString);
return imageResource;
}
public void show(string options = null)
{
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
if (popup.IsOpen)
if (!popup.IsOpen)
{
return;
}
popup.Child.Opacity = 0;
popup.Child.Opacity = 0;
Storyboard story = new Storyboard();
DoubleAnimation animation = new DoubleAnimation()
{
From = 0.0,
To = 1.0,
Duration = new Duration(TimeSpan.FromSeconds(0.2))
};
Storyboard story = new Storyboard();
DoubleAnimation animation;
animation = new DoubleAnimation();
animation.From = 0.0;
animation.To = 1.0;
animation.Duration = new Duration(TimeSpan.FromSeconds(0.2));
Storyboard.SetTarget(animation, popup.Child);
Storyboard.SetTargetProperty(animation, new PropertyPath("Opacity"));
story.Children.Add(animation);
Storyboard.SetTarget(animation, popup.Child);
Storyboard.SetTargetProperty(animation, new PropertyPath("Opacity"));
story.Children.Add(animation);
story.Begin();
Debug.WriteLine("Fading the splash screen in");
popup.IsOpen = true;
story.Begin();
popup.IsOpen = true;
if (autohide)
{
DispatcherTimer timer = new DispatcherTimer();
timer.Tick += (object sender, EventArgs e) =>
if (prefAutoHide)
{
hide();
};
timer.Interval = TimeSpan.FromSeconds(1.2);
timer.Start();
StartAutoHideTimer();
}
}
});
});
}
public void hide(string options = null)
{
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
if (!popup.IsOpen)
if (popup.IsOpen)
{
return;
popup.Child.Opacity = 1.0;
Storyboard story = new Storyboard();
DoubleAnimation animation = new DoubleAnimation()
{
From = 1.0,
To = 0.0,
Duration = new Duration(TimeSpan.FromSeconds(0.4))
};
Storyboard.SetTarget(animation, popup.Child);
Storyboard.SetTargetProperty(animation, new PropertyPath("Opacity"));
story.Children.Add(animation);
story.Completed += (object sender, EventArgs e) =>
{
popup.IsOpen = false;
};
story.Begin();
}
popup.Child.Opacity = 1.0;
Storyboard story = new Storyboard();
DoubleAnimation animation;
animation = new DoubleAnimation();
animation.From = 1.0;
animation.To = 0.0;
animation.Duration = new Duration(TimeSpan.FromSeconds(0.4));
Storyboard.SetTarget(animation, popup.Child);
Storyboard.SetTargetProperty(animation, new PropertyPath("Opacity"));
story.Children.Add(animation);
story.Completed += (object sender, EventArgs e) =>
{
popup.IsOpen = false;
};
story.Begin();
});
}
private void StartAutoHideTimer()
{
var timer = new DispatcherTimer() { Interval = TimeSpan.FromMilliseconds(prefDelay) };
timer.Tick += (object sender, EventArgs e) =>
{
hide();
timer.Stop();
};
timer.Start();
}
}
}

View File

@@ -0,0 +1 @@
build

View File

@@ -1,5 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<!--
#
# 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.
#
-->
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>

View File

@@ -1,3 +1,22 @@
<!--
# license: 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.
-->
# iOS Tests for CDVSplashScreen
You need to install `node.js` to pull in `cordova-ios`.

View File

@@ -5,9 +5,9 @@
"author": "Apache Software Foundation",
"license": "Apache Version 2.0",
"dependencies": {
"cordova-ios": "^3.6.0"
"cordova-ios": "*"
},
"scripts": {
"test": "xcodebuild -scheme CordovaLib && xcodebuild test -scheme CDVSplashScreenLibTests -destination 'platform=iOS Simulator,name=iPhone 5'"
}
}
"test": "xcodebuild test -workspace CDVSplashScreenTest.xcworkspace -scheme CDVSplashScreenLibTests -destination 'platform=iOS Simulator,name=iPhone 5' CONFIGURATION_BUILD_DIR='/tmp' HEADER_SEARCH_PATHS='$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include'"
}
}

14
tests/package.json Normal file
View File

@@ -0,0 +1,14 @@
{
"name": "cordova-plugin-splashscreen-tests",
"version": "5.0.4-dev",
"description": "",
"cordova": {
"id": "cordova-plugin-splashscreen-tests",
"platforms": []
},
"keywords": [
"ecosystem:cordova"
],
"author": "",
"license": "Apache 2.0"
}

View File

@@ -19,8 +19,8 @@
-->
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
id="org.apache.cordova.splashscreen.tests"
version="0.3.5">
id="cordova-plugin-splashscreen-tests"
version="5.0.4-dev">
<name>Cordova Splashscreen Plugin Tests</name>
<license>Apache 2.0</license>

View File

@@ -19,18 +19,20 @@
*
*/
exports.defineAutoTest = function () {
/* jshint jasmine: true */
exports.defineAutoTests = function () {
describe('Splashscreen (cordova)', function () {
it("splashscreen.spec.1 should exist", function () {
expect(navigator.splashscreen).toBeDefined();
});
it("splashscreen.spec.2 exec method should exist", function () {
it("splashscreen.spec.2 show method should exist", function () {
expect(navigator.splashscreen.show).toBeDefined();
expect(typeof navigator.splashscreen.show).toBe('function');
});
it("splashscreen.spec.3 exec method should exist", function () {
it("splashscreen.spec.3 hide method should exist", function () {
expect(navigator.splashscreen.hide).toBeDefined();
expect(typeof navigator.splashscreen.hide).toBe('function');
});

17
types/index.d.ts vendored Normal file
View File

@@ -0,0 +1,17 @@
// Type definitions for Apache Cordova Splashscreen plugin
// Project: https://github.com/apache/cordova-plugin-splashscreen
// Definitions by: Microsoft Open Technologies Inc <http://msopentech.com>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
//
// Copyright (c) Microsoft Open Technologies Inc
// Licensed under the MIT license.
interface Navigator {
/** This plugin displays and hides a splash screen during application launch. */
splashscreen: {
/** Dismiss the splash screen. */
hide(): void;
/** Displays the splash screen. */
show(): void;
}
}

View File

@@ -1,4 +1,4 @@
/*
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -19,25 +19,19 @@
*
*/
( function() {
/*jslint sloppy:true */
win = null;
var splash = require('cordova/splashscreen');
module.exports = {
show: function() {
if ( win === null ) {
win = window.open('splashscreen.html');
}
var SplashScreen = {
show: function () {
splash.show();
},
hide: function() {
if ( win !== null ) {
win.close();
win = null;
}
hide: function () {
splash.hide();
}
};
require("cordova/tizen/commandProxy").add("SplashScreen", module.exports);
module.exports = SplashScreen;
})();
require("cordova/exec/proxy").add("SplashScreen", SplashScreen);

View File

@@ -1,106 +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.
*
*/
/*jslint sloppy:true */
/*global Windows:true, require, module, window, document, WinJS */
var cordova = require('cordova'),
channel = require('cordova/channel');
/* This is the actual implementation part that returns the result on Windows 8
*/
var position = { x: 0, y: 0, width: 0, height: 0 }; // defined by evt.detail.splashScreen.imageLocation
var splash = null; //
var localSplash; // the image to display
var localSplashImage;
var bgColor = "#464646";
function updateImageLocation() {
localSplash.style.width = window.innerWidth + "px";
localSplash.style.height = window.innerHeight + "px";
localSplash.style.top = "0px";
localSplash.style.left = "0px";
localSplashImage.style.top = position.y + "px";
localSplashImage.style.left = position.x + "px";
localSplashImage.style.height = position.height + "px";
localSplashImage.style.width = position.width + "px";
}
function onResize(evt) {
if (splash) {
position = splash.imageLocation;
updateImageLocation();
}
}
var SplashScreen = {
setBGColor: function (cssBGColor) {
bgColor = cssBGColor;
if (localSplash) {
localSplash.style.backgroundColor = bgColor;
}
},
show: function () {
window.addEventListener("resize", onResize, false);
localSplash = document.createElement("div");
localSplash.style.backgroundColor = bgColor;
localSplash.style.position = "absolute";
localSplashImage = document.createElement("img");
localSplashImage.src = "ms-appx:///images/splashscreen.png";
localSplashImage.style.position = "absolute";
updateImageLocation();
localSplash.appendChild(localSplashImage);
document.body.appendChild(localSplash);
},
hide: function () {
window.removeEventListener("resize", onResize, false);
document.body.removeChild(localSplash);
localSplash = null;
}
};
module.exports = SplashScreen;
function activated(evt) {
if (evt.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.launch) {
splash = evt.detail.splashScreen;
position = evt.detail.splashScreen.imageLocation;
}
}
channel.onCordovaReady.subscribe(function (evt) {
document.addEventListener("DOMContentLoaded", function (evt) {
WinJS.Application.addEventListener("activated", activated, false);
}, false);
});
require("cordova/exec/proxy").add("SplashScreen", SplashScreen);