Mike 9 年之前
父節點
當前提交
216b6b3593
共有 76 個文件被更改,包括 6591 次插入21 次删除
  1. 4 0
      wl/config.xml
  2. 1 1
      wl/platforms/android/AndroidManifest.xml
  3. 1 1
      wl/platforms/android/assets/www/index.html
  4. 5 1
      wl/platforms/android/assets/www/js/config/router.js
  5. 1 1
      wl/platforms/android/assets/www/js/controllers/car.js
  6. 1 1
      wl/platforms/android/assets/www/js/controllers/goods.js
  7. 2 2
      wl/platforms/android/assets/www/js/controllers/home.js
  8. 18 12
      wl/platforms/android/assets/www/js/controllers/my.js
  9. 1 1
      wl/platforms/android/assets/www/js/filters/filter.js
  10. 9 1
      wl/platforms/android/res/xml/config.xml
  11. 3 0
      wl/plugins/android.json
  12. 37 0
      wl/plugins/cordova-plugin-splashscreen/CONTRIBUTING.md
  13. 202 0
      wl/plugins/cordova-plugin-splashscreen/LICENSE
  14. 5 0
      wl/plugins/cordova-plugin-splashscreen/NOTICE
  15. 234 0
      wl/plugins/cordova-plugin-splashscreen/README.md
  16. 184 0
      wl/plugins/cordova-plugin-splashscreen/RELEASENOTES.md
  17. 119 0
      wl/plugins/cordova-plugin-splashscreen/doc/de/README.md
  18. 78 0
      wl/plugins/cordova-plugin-splashscreen/doc/de/index.md
  19. 119 0
      wl/plugins/cordova-plugin-splashscreen/doc/es/README.md
  20. 76 0
      wl/plugins/cordova-plugin-splashscreen/doc/es/index.md
  21. 119 0
      wl/plugins/cordova-plugin-splashscreen/doc/fr/README.md
  22. 78 0
      wl/plugins/cordova-plugin-splashscreen/doc/fr/index.md
  23. 119 0
      wl/plugins/cordova-plugin-splashscreen/doc/it/README.md
  24. 78 0
      wl/plugins/cordova-plugin-splashscreen/doc/it/index.md
  25. 119 0
      wl/plugins/cordova-plugin-splashscreen/doc/ja/README.md
  26. 78 0
      wl/plugins/cordova-plugin-splashscreen/doc/ja/index.md
  27. 119 0
      wl/plugins/cordova-plugin-splashscreen/doc/ko/README.md
  28. 78 0
      wl/plugins/cordova-plugin-splashscreen/doc/ko/index.md
  29. 119 0
      wl/plugins/cordova-plugin-splashscreen/doc/pl/README.md
  30. 78 0
      wl/plugins/cordova-plugin-splashscreen/doc/pl/index.md
  31. 75 0
      wl/plugins/cordova-plugin-splashscreen/doc/ru/index.md
  32. 119 0
      wl/plugins/cordova-plugin-splashscreen/doc/zh/README.md
  33. 78 0
      wl/plugins/cordova-plugin-splashscreen/doc/zh/index.md
  34. 52 0
      wl/plugins/cordova-plugin-splashscreen/package.json
  35. 134 0
      wl/plugins/cordova-plugin-splashscreen/plugin.xml
  36. 378 0
      wl/plugins/cordova-plugin-splashscreen/src/android/SplashScreen.java
  37. 30 0
      wl/plugins/cordova-plugin-splashscreen/src/blackberry10/index.js
  38. 138 0
      wl/plugins/cordova-plugin-splashscreen/src/browser/SplashScreenProxy.js
  39. 45 0
      wl/plugins/cordova-plugin-splashscreen/src/ios/CDVSplashScreen.h
  40. 474 0
      wl/plugins/cordova-plugin-splashscreen/src/ios/CDVSplashScreen.m
  41. 28 0
      wl/plugins/cordova-plugin-splashscreen/src/ios/CDVViewController+SplashScreen.h
  42. 89 0
      wl/plugins/cordova-plugin-splashscreen/src/ios/CDVViewController+SplashScreen.m
  43. 43 0
      wl/plugins/cordova-plugin-splashscreen/src/tizen/SplashScreenProxy.js
  44. 42 0
      wl/plugins/cordova-plugin-splashscreen/src/ubuntu/splashscreen.cpp
  45. 52 0
      wl/plugins/cordova-plugin-splashscreen/src/ubuntu/splashscreen.h
  46. 39 0
      wl/plugins/cordova-plugin-splashscreen/src/wp/ResolutionHelper.cs
  47. 255 0
      wl/plugins/cordova-plugin-splashscreen/src/wp/SplashScreen.cs
  48. 7 0
      wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest.xcworkspace/contents.xcworkspacedata
  49. 41 0
      wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest.xcworkspace/xcshareddata/CDVSplashScreenTest.xccheckout
  50. 77 0
      wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest.xcworkspace/xcshareddata/xcschemes/CordovaLib.xcscheme
  51. 1 0
      wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest/.npmignore
  52. 702 0
      wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest/CDVSplashScreenLibTests/ImageNameTest.m
  53. 57 0
      wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest/CDVSplashScreenLibTests/ImageNameTestDelegates.h
  54. 200 0
      wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest/CDVSplashScreenLibTests/ImageNameTestDelegates.m
  55. 44 0
      wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest/CDVSplashScreenLibTests/Info.plist
  56. 505 0
      wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/project.pbxproj
  57. 7 0
      wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata
  58. 41 0
      wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/project.xcworkspace/xcshareddata/CDVSplashScreenTest.xccheckout
  59. 77 0
      wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/xcshareddata/xcschemes/CDVSplashScreenLib.xcscheme
  60. 96 0
      wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/xcshareddata/xcschemes/CDVSplashScreenLibTests.xcscheme
  61. 40 0
      wl/plugins/cordova-plugin-splashscreen/tests/ios/README.md
  62. 39 0
      wl/plugins/cordova-plugin-splashscreen/tests/ios/doc/de/README.md
  63. 39 0
      wl/plugins/cordova-plugin-splashscreen/tests/ios/doc/es/README.md
  64. 39 0
      wl/plugins/cordova-plugin-splashscreen/tests/ios/doc/fr/README.md
  65. 39 0
      wl/plugins/cordova-plugin-splashscreen/tests/ios/doc/it/README.md
  66. 39 0
      wl/plugins/cordova-plugin-splashscreen/tests/ios/doc/ja/README.md
  67. 39 0
      wl/plugins/cordova-plugin-splashscreen/tests/ios/doc/ko/README.md
  68. 39 0
      wl/plugins/cordova-plugin-splashscreen/tests/ios/doc/pl/README.md
  69. 39 0
      wl/plugins/cordova-plugin-splashscreen/tests/ios/doc/zh/README.md
  70. 13 0
      wl/plugins/cordova-plugin-splashscreen/tests/ios/package.json
  71. 29 0
      wl/plugins/cordova-plugin-splashscreen/tests/plugin.xml
  72. 64 0
      wl/plugins/cordova-plugin-splashscreen/tests/tests.js
  73. 33 0
      wl/plugins/cordova-plugin-splashscreen/www/splashscreen.js
  74. 78 0
      wl/plugins/cordova-plugin-splashscreen/www/windows/SplashScreenProxy.js
  75. 8 0
      wl/plugins/fetch.json
  76. 3 0
      wl/plugins/ios.json

+ 4 - 0
wl/config.xml

xqd
@@ -35,6 +35,10 @@
   <access origin="*"/>
   <allow-navigation href="*"/>
   <allow-intent href="*"/>
+  <preference name="SplashScreen" value="screen"/>
+  <preference name="SplashScreenDelay" value="5000"/>
+  <preference name="AutoHideSplashScreen" value="true"/>
+  <preference name="ShowSplashScreenSpinner" value="false"/>
   <preference name="webviewbounce" value="false"/>
   <preference name="UIWebViewBounce" value="false"/>
   <preference name="DisallowOverscroll" value="true"/>

+ 1 - 1
wl/platforms/android/AndroidManifest.xml

xqd
@@ -1,5 +1,5 @@
 <?xml version='1.0' encoding='utf-8'?>
-<manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="0.0.1" package="com.uhisport.football" xmlns:android="http://schemas.android.com/apk/res/android">
+<manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="0.0.1" package="net.yihankeji.demo" xmlns:android="http://schemas.android.com/apk/res/android">
     <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
     <uses-permission android:name="android.permission.INTERNET" />
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

+ 1 - 1
wl/platforms/android/assets/www/index.html

xqd
@@ -7,7 +7,7 @@
     <link href="lib/ionic/css/ionic.css" rel="stylesheet">
     <link href="css/style.css" rel="stylesheet">
 </head>
-<body ng-app="app" class="platform-android platform-cordova platform-webview">
+<body ng-app="app">
     <ion-nav-bar class="bar-positive">
         <ion-nav-back-button>
         </ion-nav-back-button>

+ 5 - 1
wl/platforms/android/assets/www/js/config/router.js

xqd
@@ -213,6 +213,10 @@
                 }
             }
         })
-        $urlRouterProvider.otherwise('/wl/home');
+        if(localStorage['user']){
+            $urlRouterProvider.otherwise('/wl/home');
+        }else{
+            $urlRouterProvider.otherwise('/account/login');
+        }
     }]);
 })(angular.module('app'));

+ 1 - 1
wl/platforms/android/assets/www/js/controllers/car.js

xqd
@@ -32,7 +32,7 @@
                     $scope.$broadcast('scroll.infiniteScrollComplete');
                 }
             }, function (erro) {
-                msg.error(erro.data.message);
+                // msg.error(erro.data.message);
             });
         }
         $scope.toggleRight = function () {

+ 1 - 1
wl/platforms/android/assets/www/js/controllers/goods.js

xqd
@@ -33,7 +33,7 @@
                     $scope.$broadcast('scroll.infiniteScrollComplete');
                 }
             }, function (erro) {
-                msg.error(erro.data.message);
+                // msg.error(erro.data);
             });
         }
         $scope.toggleRight = function () {

+ 2 - 2
wl/platforms/android/assets/www/js/controllers/home.js

xqd
@@ -8,13 +8,13 @@
         goodsService.listGoods({ type: 1, pageIndex: 1 }).then(function (result) {
             $scope.goods = result.data.data;
         }, function (erro) {
-            msg.error(erro.data.message);
+            // msg.error(erro.data.message);
         });
         $scope.cars = [];
         carService.listCars({ type: 2, pageIndex: 1 }).then(function (result) {
             $scope.cars = result.data.data;
         }, function (erro) {
-            msg.error(erro.data.message);
+            // msg.error(erro.data.message);
         });
         $scope.detail = function (item) {
             if ($scope.vm.showIndex == 1) //货源

+ 18 - 12
wl/platforms/android/assets/www/js/controllers/my.js

xqd xqd xqd xqd xqd
@@ -1,11 +1,9 @@
 (function (app) {
     app.controller('myCtrl', ["$scope", "$state", 'userService', 'msg','config', function ($scope, $state, userService,msg,config) {
         $scope.user = {};
+        $scope.host = config.server +'/upload/avatar/';
         userService.getUser().then(function (result) {
-            $scope.user = result.data.data;
-            if($scope.user.avatar){
-                $scope.user.avatar = config.server +'/upload/avatar/'+ $scope.user.avatar
-            }
+            $scope.user = result.data.data; 
         }, function (erro) {
             msg.error(erro.data.message);
         });
@@ -76,18 +74,16 @@
         }
     }]);
     
-    app.controller('myProfileCtrl', ['$scope', '$ionicActionSheet', '$ionicPopup', '$timeout', 'userService', 'msg', 'util', 'data', 'camera', function ($scope, $ionicActionSheet, $ionicPopup, $timeout, userService, msg, util, data, camera) {
+    app.controller('myProfileCtrl', ['$scope', '$ionicActionSheet', '$ionicPopup', '$timeout', 'userService', 'msg', 'util', 'data', 'camera','config', function ($scope, $ionicActionSheet, $ionicPopup, $timeout, userService, msg, util, data, camera,config) {
         $scope.user = data.getObject('user');
         $scope.genderOpt = [
               { name: "男", value: 1 },
               { name: "女", value: 0 }
         ];
+        $scope.host = config.server +'/upload/avatar/';
      
         $scope.setAvator = function () {
             camera.chooseImage().then(function (imageUri) {
-                $timeout(function () {
-                    $scope.user.avatar = imageUri;
-                });
                 var uploadOptions = new FileUploadOptions();
                 uploadOptions.fileKey = "photo";
                 uploadOptions.fileName = "avatar.jpg";
@@ -98,8 +94,14 @@
                 uploadOptions.headers = { "Authorization": token };
                 var ft = new FileTransfer();
                 ft.upload(imageUri, encodeURI(config.server + "api/user"), function (sucess) {
+                    $timeout(function () {
+                        var res = JSON.parse(sucess.response);
+                        $scope.user.avatar = res.data.avatar;
+                    });
+                    console.log('上传成功'+JSON.stringify(sucess.response));
                      //alert('上传成功'+JSON.stringify(sucess));
                 }, function (fail) {
+                    console.log('上传失败'+JSON.stringify(fail));
                       //alert('上传失败'+JSON.stringify(fail));
                 }, uploadOptions);
             }, function (erro) {
@@ -222,12 +224,10 @@
             }
          
         }
-        //上传图片
+        //上传图片 
+        $scope.host = config.server +'/upload/photo/';
         $scope.setPhoto = function () {
             camera.chooseImage().then(function (imageUri) {
-                $timeout(function () {
-                    $scope.vm.photo = imageUri;
-                });
                 var uploadOptions = new FileUploadOptions();
                 uploadOptions.fileKey = "photo";
                 uploadOptions.fileName = "photo.jpg";
@@ -238,8 +238,14 @@
                 uploadOptions.headers = { "Authorization": token };
                 var ft = new FileTransfer();
                 ft.upload(imageUri, encodeURI(config.server + "api/trucks"), function (sucess) {
+                    $timeout(function () {
+                        var res = JSON.parse(sucess.response);
+                        $scope.vm.photo = res.data.photo;
+                    });
+                    console.log('上传成功'+JSON.stringify(sucess.response));
                     //alert('上传成功'+JSON.stringify(sucess));
                 }, function (fail) {
+                    console.log('上传失败'+JSON.stringify(fail));
                     //alert('上传失败'+JSON.stringify(fail));
                 }, uploadOptions);
             }, function (erro) {

+ 1 - 1
wl/platforms/android/assets/www/js/filters/filter.js

xqd
@@ -26,7 +26,7 @@
     module.filter('avator', function () {
         return function (input) {
             if (!input || input.length === 0) {
-                return "img/photo_default_turquoise.jpg";
+                return "img/demo/photo_default_turquoise.jpg";
             }
             return input;
         };

+ 9 - 1
wl/platforms/android/res/xml/config.xml

xqd xqd xqd
@@ -1,5 +1,5 @@
 <?xml version='1.0' encoding='utf-8'?>
-<widget id="com.uhisport.football" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
+<widget id="net.yihankeji.demo" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
     <preference name="loglevel" value="DEBUG" />
     <feature name="ActionSheet">
         <param name="android-package" value="nl.xservices.plugins.actionsheet.ActionSheet" />
@@ -32,6 +32,10 @@
     <feature name="RareloopAppVersion">
         <param name="android-package" value="com.rareloop.cordova.appversion.RareloopAppVersion" />
     </feature>
+    <feature name="SplashScreen">
+        <param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen" />
+        <param name="onload" value="true" />
+    </feature>
     <icon density="ldpi" src="resources/android/icon/icon.png" />
     <icon density="mdpi" src="resources/android/icon/icon.png" />
     <icon density="hdpi" src="resources/android/icon/icon.png" />
@@ -48,6 +52,10 @@
     <access origin="*" />
     <allow-navigation href="*" />
     <allow-intent href="*" />
+    <preference name="SplashScreen" value="screen" />
+    <preference name="SplashScreenDelay" value="5000" />
+    <preference name="AutoHideSplashScreen" value="true" />
+    <preference name="ShowSplashScreenSpinner" value="false" />
     <preference name="webviewbounce" value="false" />
     <preference name="UIWebViewBounce" value="false" />
     <preference name="DisallowOverscroll" value="true" />

+ 3 - 0
wl/plugins/android.json

xqd
@@ -39,6 +39,9 @@
         },
         "ionic-plugin-keyboard": {
             "PACKAGE_NAME": "com.uhisport.football"
+        },
+        "cordova-plugin-splashscreen": {
+            "PACKAGE_NAME": "com.uhisport.football"
         }
     },
     "dependent_plugins": {}

+ 37 - 0
wl/plugins/cordova-plugin-splashscreen/CONTRIBUTING.md

xqd
@@ -0,0 +1,37 @@
+<!--
+#
+# 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.
+#
+-->
+
+# Contributing to Apache Cordova
+
+Anyone can contribute to Cordova. And we need your contributions.
+
+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/).
+
+The details are explained there, but the important items are:
+ - Sign and submit an Apache ICLA (Contributor License Agreement).
+ - Have a Jira issue open that corresponds to your contribution.
+ - Run the tests so your patch doesn't break existing functionality.
+
+We look forward to your contributions!

+ 202 - 0
wl/plugins/cordova-plugin-splashscreen/LICENSE

xqd
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   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.

+ 5 - 0
wl/plugins/cordova-plugin-splashscreen/NOTICE

xqd
@@ -0,0 +1,5 @@
+Apache Cordova
+Copyright 2012 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).

+ 234 - 0
wl/plugins/cordova-plugin-splashscreen/README.md

xqd
@@ -0,0 +1,234 @@
+<!--
+# 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.
+-->
+
+[![Build Status](https://travis-ci.org/apache/cordova-plugin-splashscreen.svg?branch=master)](https://travis-ci.org/apache/cordova-plugin-splashscreen)
+
+# cordova-plugin-splashscreen
+
+This plugin is required to work with splash screens. This plugin displays and hides a splash screen during application launch.
+
+Report issues with this plugin on the [Apache Cordova issue tracker][Apache Cordova issue tracker].
+
+## Installation
+
+    // npm hosted (new) id
+    cordova plugin add cordova-plugin-splashscreen
+
+    // you may also install directly from this repo
+    cordova plugin add https://github.com/apache/cordova-plugin-splashscreen.git
+
+## Supported Platforms
+
+- Amazon Fire OS
+- Android
+- BlackBerry 10
+- iOS
+- Windows Phone 7 and 8
+- Windows 8
+- Windows
+- Browser
+
+## Example Configuration
+In the top-level `config.xml` file (not the one in `platforms`), add configuration elements like those specified here.
+
+Please notice that the value of the "src" attribute is relative to the project directory and not to the www directory. You can name the source image whatever you like. The internal name in the app is determined by Cordova.
+
+```xml
+<platform name="android">
+    <!-- you can use any density that exists in the Android project -->
+    <splash src="res/screen/android/splash-land-hdpi.png" density="land-hdpi"/>
+    <splash src="res/screen/android/splash-land-ldpi.png" density="land-ldpi"/>
+    <splash src="res/screen/android/splash-land-mdpi.png" density="land-mdpi"/>
+    <splash src="res/screen/android/splash-land-xhdpi.png" density="land-xhdpi"/>
+
+    <splash src="res/screen/android/splash-port-hdpi.png" density="port-hdpi"/>
+    <splash src="res/screen/android/splash-port-ldpi.png" density="port-ldpi"/>
+    <splash src="res/screen/android/splash-port-mdpi.png" density="port-mdpi"/>
+    <splash src="res/screen/android/splash-port-xhdpi.png" density="port-xhdpi"/>
+</platform>
+
+<platform name="ios">
+    <!-- images are determined by width and height. The following are supported -->
+    <splash src="res/screen/ios/Default~iphone.png" width="320" height="480"/>
+    <splash src="res/screen/ios/Default@2x~iphone.png" width="640" height="960"/>
+    <splash src="res/screen/ios/Default-Portrait~ipad.png" width="768" height="1024"/>
+    <splash src="res/screen/ios/Default-Portrait@2x~ipad.png" width="1536" height="2048"/>
+    <splash src="res/screen/ios/Default-Landscape~ipad.png" width="1024" height="768"/>
+    <splash src="res/screen/ios/Default-Landscape@2x~ipad.png" width="2048" height="1536"/>
+    <splash src="res/screen/ios/Default-568h@2x~iphone.png" width="640" height="1136"/>
+    <splash src="res/screen/ios/Default-667h.png" width="750" height="1334"/>
+    <splash src="res/screen/ios/Default-736h.png" width="1242" height="2208"/>
+    <splash src="res/screen/ios/Default-Landscape-736h.png" width="2208" height="1242"/>
+</platform>
+
+<platform name="windows">
+    <!-- images are determined by width and height. The following are supported -->
+    <splash src="res/screen/windows/splashscreen.png" width="620" height="300"/>
+    <splash src="res/screen/windows/splashscreenphone.png" width="1152" height="1920"/>
+</platform>
+
+<platform name="blackberry10">
+    <!-- Add a rim:splash element for each resolution and locale you wish -->
+    <!-- http://developer.blackberry.com/html5/documentation/rim_splash_element.html -->
+    <rim:splash src="res/screen/blackberry/splashscreen.png"/>
+</platform>
+
+<preference name="SplashScreenDelay" value="10000" />
+```
+
+## Preferences
+
+#### config.xml
+
+-  __AutoHideSplashScreen__ (boolean, default to `true`). Indicates whether to hide splash screen automatically or not. Splash screen hidden after amount of time specified in the `SplashScreenDelay` preference.
+
+```xml
+    <preference name="AutoHideSplashScreen" value="true" />
+```
+
+-  __SplashScreenDelay__ (number, default to 3000). Amount of time in milliseconds to wait before automatically hide splash screen.
+
+```xml
+    <preference name="SplashScreenDelay" value="3000" />
+```
+
+### Android Quirks
+
+In your `config.xml`, you need to add the following preferences:
+
+```xml
+<preference name="SplashScreenDelay" value="3000" />
+<preference name="SplashMaintainAspectRatio" value="true|false" />
+<preference name="SplashShowOnlyFirstTime" value="true|false" />
+```
+
+The first parameter represents how long the splashscreen will appear in milliseconds. It defaults to 3000 ms.
+
+"SplashMaintainAspectRatio" preference is optional. If set to true, splash screen drawable is not stretched to fit screen, but instead simply "covers" the screen, like CSS "background-size:cover". This is very useful when splash screen images cannot be distorted in any way, for example when they contain scenery or text. This setting works best with images that have large margins (safe areas) that can be safely cropped on screens with different aspect ratios.
+
+The plugin reloads splash drawable whenever orientation changes, so you can specify different drawables for portrait and landscape orientations.
+
+"SplashShowOnlyFirstTime" preference is also optional and defaults to `true`. When set to `true` splash screen will only appear on application launch. However, if you plan to use `navigator.app.exitApp()` to close application and force splash screen appear on next launch, you should set this property to `false` (this also applies to closing the App with Back button).
+
+### Browser Quirks
+
+You can use the following preferences in your `config.xml`:
+
+```xml
+<platform name="browser">
+    <preference name="SplashScreen" value="/images/browser/splashscreen.jpg" /> <!-- defaults to "/img/logo.png" -->
+    <preference name="SplashScreenDelay" value="3000" /> <!-- defaults to "3000" -->
+    <preference name="SplashScreenBackgroundColor" value="green" /> <!-- defaults to "#464646" -->
+    <preference name="ShowSplashScreen" value="false" /> <!-- defaults to "true" -->
+    <preference name="SplashScreenWidth" value="600" /> <!-- defaults to "170" -->
+    <preference name="SplashScreenHeight" value="300" /> <!-- defaults to "200" -->
+</platform>
+```
+
+__Note__: `SplashScreen` value should be absolute in order to work in a sub-page. The `SplashScreen` value is used only for the browser platform. The value will be ignored for other platforms.
+
+### Android and iOS Quirks
+
+- In iOS, the splashscreen images are called launch images. These images are mandatory on iOS.
+
+- `FadeSplashScreen` (boolean, defaults to `true`): Set to `false` to
+  prevent the splash screen from fading in and out when its display
+  state changes.
+
+```xml
+    <preference name="FadeSplashScreen" value="false"/>
+```
+
+- `FadeSplashScreenDuration` (float, defaults to `3000`): Specifies the
+  number of milliseconds for the splash screen fade effect to execute.
+
+```xml
+    <preference name="FadeSplashScreenDuration" value="3000"/>
+```
+
+Note also that this value used to be seconds, and not milliseconds, so values less than 30 will still be treated as seconds. ( Consider this a deprecated patch that will disapear in some future version. )
+
+_Note_: `FadeSplashScreenDuration` is included into `SplashScreenDelay`, for example if you have `<preference name="SplashScreenDelay" value="3000" />` and `<preference name="FadeSplashScreenDuration" value="1000"/>` defined in `config.xml`:
+
+- 00:00 - splashscreen is shown
+- 00:02 - fading has started
+- 00:03 - splashscreen is hidden
+
+Turning the fading off via `<preference name="FadeSplashScreen" value="false"/>` technically means fading duration to be `0` so that in this example the overall splash delay will still be 3 seconds.
+
+_Note_: This only applies to the app startup - you need to take the fading timeout into account when manually showing/hiding the splashscreen in the code:
+
+```javascript
+navigator.splashscreen.show();
+window.setTimeout(function () {
+    navigator.splashscreen.hide();
+}, splashDuration - fadeDuration);
+```
+
+- `ShowSplashScreenSpinner` (boolean, defaults to `true`): Set to `false`
+  to hide the splash-screen spinner.
+
+```xml
+    <preference name="ShowSplashScreenSpinner" value="false"/>
+```
+
+## Methods
+
+- splashscreen.show
+- splashscreen.hide
+
+## splashscreen.hide
+
+Dismiss the splash screen.
+
+```js
+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:
+
+```js
+setTimeout(function() {
+    navigator.splashscreen.hide();
+}, 2000);
+```
+
+## splashscreen.show
+
+Displays the splash screen.
+
+```js
+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. For this reason, it is unlikely you need to call `navigator.splashscreen.show()` to make the splash
+screen visible for app startup.
+
+[Apache Cordova issue tracker]: https://issues.apache.org/jira/issues/?jql=project%20%3D%20CB%20AND%20status%20in%20%28Open%2C%20%22In%20Progress%22%2C%20Reopened%29%20AND%20resolution%20%3D%20Unresolved%20AND%20component%20%3D%20%22Plugin%20Splashscreen%22%20ORDER%20BY%20priority%20DESC%2C%20summary%20ASC%2C%20updatedDate%20DESC

+ 184 - 0
wl/plugins/cordova-plugin-splashscreen/RELEASENOTES.md

xqd
@@ -0,0 +1,184 @@
+<!--
+#
+# 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.
+#
+-->
+# Release Notes
+
+### 3.2.2 (Apr 15, 2016)
+* CB-10979 Fix splashscreen **iOS** native tests. Added `jshintignore` for tests/ios
+* CB-10895 Transparent Splashscreen view sometimes remains
+* CB-10562 `hide()` not working in latest splashscreen plug in 3.1.0 in **iOS**
+* CB-10688 Plugin Splashscreen Readme must have examples.
+* 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 Implementing `FadeSplashScreen` feature for **Android**
+* CB-9240 Cordova splash screen plugin **iPad** landscape mode issue
+* CB-10263 Fix splashscreen plugin filenames for Asset Catalog
+* CB-9374 **Android** add `SplashShowOnlyFirstTime` as preference
+* CB-10244 Don't rotate the **iPhone 6 Plus** splash
+* CB-9043 Fix the **ios** splashscreen being deformed on orientation change
+* CB-10079 Splashscreen plugin does not honor `SplashScreenDelay` on **iOS**
+* CB-10231 Fix `FadeSplashScreen` to default to true on **iOS**
+
+### 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
+* 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
+* Lisa testing pulling in plugins for plugin: cordova-plugin-splashscreen
+* [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](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.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.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.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.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.

+ 119 - 0
wl/plugins/cordova-plugin-splashscreen/doc/de/README.md

xqd
@@ -0,0 +1,119 @@
+<!--
+# 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.
+-->
+
+# cordova-plugin-splashscreen
+
+[![Build Status](https://travis-ci.org/apache/cordova-plugin-splashscreen.svg)](https://travis-ci.org/apache/cordova-plugin-splashscreen)
+
+Dieses Plugin zeigt und verbirgt einen Splash-Screen beim Start der Anwendung.
+
+## Installation
+
+    // npm hosted (new) id
+    cordova plugin add cordova-plugin-splashscreen
+    // you may also install directly from this repo
+    cordova plugin add https://github.com/apache/cordova-plugin-splashscreen.git
+    
+
+## Unterstützte Plattformen
+
+  * Amazon Fire OS
+  * Android
+  * BlackBerry 10
+  * iOS
+  * Windows Phone 7 und 8
+  * Windows 8
+  * Windows
+  * Browser
+
+## Methoden
+
+  * SplashScreen.Show
+  * SplashScreen.Hide
+
+### Android Eigenarten
+
+Sie müssen in Ihrem `"config.xml"`fügen Sie die folgenden Einstellungen:
+
+    <preference name="SplashScreen" value="foo" />
+    <preference name="SplashScreenDelay" value="10000" />
+    <preference name="SplashMaintainAspectRatio" value="true|false" />
+    
+
+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](http://cordova.apache.org/docs/en/edge/config_ref_images.md.html).
+
+"SplashMaintainAspectRatio" Präferenz ist optional. Wenn wahr, Splash-Screen zeichenbaren nicht gestreckt wird, um den Bildschirm passen, sondern stattdessen einfach "" den Bildschirm, wie CSS abdeckt "Hintergrund-Größe: Schutz vor". Dies ist sehr nützlich, wenn Splash-Bildschirm Bilder können nicht, in keiner Weise, zum Beispiel verzerrt werden wenn sie Landschaft oder Text enthalten. Diese Einstellung funktioniert am besten mit Bildern, die große Margen (sichere Bereiche) haben, die sicher auf Bildschirme mit unterschiedlichen Seitenverhältnissen zugeschnitten werden können.
+
+Das Plugin lädt platsch zeichenbaren wenn Ausrichtung ändert, sodass Sie verschiedene Drawables für hoch- und Querformat Ausrichtungen angeben können.
+
+### Browser-Eigenheiten
+
+In Ihrem `"config.xml"`können Sie die folgenden Einstellungen:
+
+    <platform name="browser">
+        <preference name="SplashScreen" value="images/browser/splashscreen.jpg" /> <!-- defaults to "img/logo.png" -->
+        <preference name="SplashScreenDelay" value="10000" /> <!-- defaults to "3000" -->
+        <preference name="SplashScreenBackgroundColor" value="green" /> <!-- defaults to "#464646" -->
+        <preference name="ShowSplashScreen" value="false" /> <!-- defaults to "true" -->
+        <preference name="SplashScreenWidth" value="600" /> <!-- defaults to "170" -->
+        <preference name="SplashScreenHeight" value="300" /> <!-- defaults to "200" -->
+    </platform>
+    
+
+### iOS Macken
+
+  * `FadeSplashScreen` (Boolean, standardmäßig auf `true festgelegt`): um zu verhindern, dass den Begrüßungsbildschirm ein-und ausblenden bei ihrer Anzeige Statusänderungen auf `false` festgelegt.
+    
+        <preference name="FadeSplashScreen" value="false"/>
+        
+
+  * `FadeSplashScreenDuration` (float, Standardwert ist `2`): gibt die Anzahl der Sekunden für den Begrüßungsbildschirm fade Effekt ausgeführt.
+    
+        <preference name="FadeSplashScreenDuration" value="4"/>
+        
+
+  * `ShowSplashScreenSpinner` (Boolean, standardmäßig auf `true festgelegt`): auf `false` festgelegt wird, um den Begrüßungsbildschirm Spinner auszublenden.
+    
+        <preference name="ShowSplashScreenSpinner" value="false"/>
+        
+
+## SplashScreen.Hide
+
+Schließen Sie den Splash-Screen.
+
+    navigator.splashscreen.hide();
+    
+
+### BlackBerry 10, WP8, iOS Eigenarten
+
+Die Datei `config.xml` `AutoHideSplashScreen` Einstellung muss `false` sein. 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 `navigator.splashscreen.show()` aufrufen, bis die app begonnen 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 der Datei `config.xml` werden automatisch die Splash `show` sofort nach Ihrer app-Start und Bildschirm bevor es voll begonnen hat, und das `deviceready`-Ereignis empfangen. Weitere Informationen zu dieser Konfiguration finden Sie unter [Symbole und Splash-Screens](http://cordova.apache.org/docs/en/edge/config_ref_images.md.html). Aus diesem Grund ist es unwahrscheinlich, dass Sie `navigator.splashscreen.show()` damit den Splash-Screen sichtbar ist für app-Start aufrufen müssen.

+ 78 - 0
wl/plugins/cordova-plugin-splashscreen/doc/de/index.md

xqd
@@ -0,0 +1,78 @@
+<!---
+    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.
+-->
+
+# cordova-plugin-splashscreen
+
+Dieses Plugin zeigt und verbirgt einen Splash-Screen beim Start der Anwendung.
+
+## Installation
+
+    cordova plugin add cordova-plugin-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 Datei `config.xml` `AutoHideSplashScreen` Einstellung muss `false` sein. 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 `navigator.splashscreen.show()` aufrufen, bis die app begonnen 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 der Datei `config.xml` werden automatisch die Splash `show` sofort nach Ihrer app-Start und Bildschirm bevor es voll begonnen hat, und das `deviceready`-Ereignis empfangen. Weitere Informationen zu dieser Konfiguration finden Sie unter [Symbole und Splash-Screens][1]. Aus diesem Grund ist es unwahrscheinlich, dass Sie `navigator.splashscreen.show()` damit den Splash-Screen sichtbar ist für app-Start aufrufen müssen.

+ 119 - 0
wl/plugins/cordova-plugin-splashscreen/doc/es/README.md

xqd
@@ -0,0 +1,119 @@
+<!--
+# 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.
+-->
+
+# cordova-plugin-splashscreen
+
+[![Build Status](https://travis-ci.org/apache/cordova-plugin-splashscreen.svg)](https://travis-ci.org/apache/cordova-plugin-splashscreen)
+
+Este plugin muestra y esconde una pantalla de bienvenida durante el inicio de la aplicación.
+
+## Instalación
+
+    // npm hosted (new) id
+    cordova plugin add cordova-plugin-splashscreen
+    // you may also install directly from this repo
+    cordova plugin add https://github.com/apache/cordova-plugin-splashscreen.git
+    
+
+## Plataformas soportadas
+
+  * Amazon fire OS
+  * Android
+  * BlackBerry 10
+  * iOS
+  * Windows Phone 7 y 8
+  * Windows 8
+  * Windows
+  * Explorador
+
+## Métodos
+
+  * splashscreen.show
+  * splashscreen.hide
+
+### Rarezas Android
+
+En el `archivo config.xml`, es necesario agregar las siguientes preferencias:
+
+    <preference name="SplashScreen" value="foo" />
+    <preference name="SplashScreenDelay" value="10000" />
+    <preference name="SplashMaintainAspectRatio" value="true|false" />
+    
+
+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](http://cordova.apache.org/docs/en/edge/config_ref_images.md.html) para obtener más información.
+
+Preferencia "SplashMaintainAspectRatio" es opcional. Si establece en true, pantalla dibujable no es estirado para caber la pantalla, pero en su lugar simplemente "cover" la pantalla, como CSS "background-size: cover". Esto es muy útil cuando las imágenes de pantallas splash no distorsionadas de cualquier manera, por ejemplo cuando contienen texto o paisaje. Esta opción funciona mejor con imágenes que tienen bordes grandes (zonas seguras) que pueden ser recortadas con seguridad en pantallas con diferentes relaciones de aspecto.
+
+El plugin recarga splash dibujable cuando cambia de orientación, por lo que puede especificar diferente dibujo para orientaciones vertical y horizontal.
+
+### Navegador rarezas
+
+Puede utilizar las siguientes preferencias en el `archivo config.xml`:
+
+    <platform name="browser">
+        <preference name="SplashScreen" value="images/browser/splashscreen.jpg" /> <!-- defaults to "img/logo.png" -->
+        <preference name="SplashScreenDelay" value="10000" /> <!-- defaults to "3000" -->
+        <preference name="SplashScreenBackgroundColor" value="green" /> <!-- defaults to "#464646" -->
+        <preference name="ShowSplashScreen" value="false" /> <!-- defaults to "true" -->
+        <preference name="SplashScreenWidth" value="600" /> <!-- defaults to "170" -->
+        <preference name="SplashScreenHeight" value="300" /> <!-- defaults to "200" -->
+    </platform>
+    
+
+### iOS rarezas
+
+  * `FadeSplashScreen` (booleano, por defecto `true`): establecida en `false` para evitar que la pantalla de bienvenida de descolorarse adentro y hacia fuera cuando cambia su estado de presentación.
+    
+        <preference name="FadeSplashScreen" value="false"/>
+        
+
+  * `FadeSplashScreenDuration` (float, por defecto es `2`): especifica el número de segundos para que la pantalla se descolora efecto para ejecutar.
+    
+        <preference name="FadeSplashScreenDuration" value="4"/>
+        
+
+  * `ShowSplashScreenSpinner` (booleano, por defecto `true`): establecida en `false` para ocultar la ruleta de la pantalla de bienvenida.
+    
+        <preference name="ShowSplashScreenSpinner" value="false"/>
+        
+
+## 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](http://cordova.apache.org/docs/en/edge/config_ref_images.md.html) 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.

+ 76 - 0
wl/plugins/cordova-plugin-splashscreen/doc/es/index.md

xqd
@@ -0,0 +1,76 @@
+<!---
+    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.
+-->
+
+# cordova-plugin-splashscreen
+
+Este plugin muestra y esconde una pantalla de bienvenida durante el inicio de la aplicación.
+
+## Instalación
+
+    cordova plugin add cordova-plugin-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:
+
+    < nombre de preferencia = "SplashScreen" value = "foo" / >< nombre de preferencia = "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.

+ 119 - 0
wl/plugins/cordova-plugin-splashscreen/doc/fr/README.md

xqd
@@ -0,0 +1,119 @@
+<!--
+# 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.
+-->
+
+# cordova-plugin-splashscreen
+
+[![Build Status](https://travis-ci.org/apache/cordova-plugin-splashscreen.svg)](https://travis-ci.org/apache/cordova-plugin-splashscreen)
+
+Ce plugin affiche et masque un écran de démarrage lors du lancement de l'application.
+
+## Installation
+
+    // npm hosted (new) id
+    cordova plugin add cordova-plugin-splashscreen
+    // you may also install directly from this repo
+    cordova plugin add https://github.com/apache/cordova-plugin-splashscreen.git
+    
+
+## Plates-formes supportées
+
+  * Amazon Fire OS
+  * Android
+  * BlackBerry 10
+  * iOS
+  * Windows Phone 7 et 8
+  * Windows 8
+  * Windows
+  * Navigateur
+
+## 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" />
+    <preference name="SplashMaintainAspectRatio" value="true|false" />
+    
+
+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](http://cordova.apache.org/docs/en/edge/config_ref_images.md.html).
+
+Préférence de « SplashMaintainAspectRatio » est facultative. Si défini à true, écran de démarrage drawable n'est pas étirée pour s'adapter écran, mais plutôt simplement « couvre » l'écran, comme CSS "fond-taille : couverture". Ceci est très utile lorsque images écran de démarrage ne peut pas être déformées en quelque sorte, par exemple lorsqu'ils contiennent des décors ou texte. Ce paramètre fonctionne mieux avec des images qui ont des marges importantes (zones de sécurité) qui peuvent être recadrées en toute sécurité sur les écrans avec des proportions différentes.
+
+Le plugin recharge splash drawable chaque fois que l'orientation change, donc vous pouvez spécifier différents drawables pour les orientations portrait et paysage.
+
+### Bizarreries navigateur
+
+Vous pouvez utiliser les préférences suivantes dans votre `fichier config.xml`:
+
+    <platform name="browser">
+        <preference name="SplashScreen" value="images/browser/splashscreen.jpg" /> <!-- defaults to "img/logo.png" -->
+        <preference name="SplashScreenDelay" value="10000" /> <!-- defaults to "3000" -->
+        <preference name="SplashScreenBackgroundColor" value="green" /> <!-- defaults to "#464646" -->
+        <preference name="ShowSplashScreen" value="false" /> <!-- defaults to "true" -->
+        <preference name="SplashScreenWidth" value="600" /> <!-- defaults to "170" -->
+        <preference name="SplashScreenHeight" value="300" /> <!-- defaults to "200" -->
+    </platform>
+    
+
+### Notes au sujet d'iOS
+
+  * `FadeSplashScreen` (boolean, par défaut est `true`): la valeur `false` pour empêcher l'écran de démarrage de fading in et out lorsque son état d'affichage est modifié.
+    
+        <preference name="FadeSplashScreen" value="false"/>
+        
+
+  * `FadeSplashScreenDuration` (float, la valeur par défaut `2`): spécifie le nombre de secondes que l'écran de démarrage s'estomper l'effet d'exécuter.
+    
+        <preference name="FadeSplashScreenDuration" value="4"/>
+        
+
+  * `ShowSplashScreenSpinner` (boolean, par défaut est `true`): la valeur `false` pour masquer le cône de l'écran de démarrage.
+    
+        <preference name="ShowSplashScreenSpinner" value="false"/>
+        
+
+## splashscreen.Hide
+
+Faire disparaître de l'écran de démarrage.
+
+    navigator.splashscreen.hide();
+    
+
+### BlackBerry 10, WP8, iOS Quirk
+
+Paramètre `AutoHideSplashScreen` du fichier `config.xml` doit avoir la valeur `false`. Pour retarder la cacher l'écran de démarrage pendant deux secondes, ajouter un minuteur semblable à la suivante dans le gestionnaire d'événements `deviceready` :
+
+        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 l'événement `deviceready` est 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 dans le fichier `config.xml` automatiquement `show` le splash projettera immédiatement après votre lancement de l'app et avant qu'il a complètement démarré et a reçu l'événement `deviceready`. Voir les [icônes et les écrans de démarrage](http://cordova.apache.org/docs/en/edge/config_ref_images.md.html) 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.

+ 78 - 0
wl/plugins/cordova-plugin-splashscreen/doc/fr/index.md

xqd
@@ -0,0 +1,78 @@
+<!---
+    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.
+-->
+
+# cordova-plugin-splashscreen
+
+Ce plugin affiche et masque un écran de démarrage lors du lancement de l'application.
+
+## Installation
+
+    cordova plugin add cordova-plugin-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
+
+Paramètre `AutoHideSplashScreen` du fichier `config.xml` doit avoir la valeur `false`. Pour retarder la cacher l'écran de démarrage pendant deux secondes, ajouter un minuteur semblable à la suivante dans le gestionnaire d'événements `deviceready` :
+
+        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 l'événement `deviceready` est 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 dans le fichier `config.xml` automatiquement `show` le splash projettera immédiatement après votre lancement de l'app et avant qu'il a complètement démarré et a reçu l'événement `deviceready`. 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.

+ 119 - 0
wl/plugins/cordova-plugin-splashscreen/doc/it/README.md

xqd
@@ -0,0 +1,119 @@
+<!--
+# 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.
+-->
+
+# cordova-plugin-splashscreen
+
+[![Build Status](https://travis-ci.org/apache/cordova-plugin-splashscreen.svg)](https://travis-ci.org/apache/cordova-plugin-splashscreen)
+
+Questo plugin Visualizza e nasconde una schermata iniziale durante l'avvio dell'applicazione.
+
+## Installazione
+
+    // npm hosted (new) id
+    cordova plugin add cordova-plugin-splashscreen
+    // you may also install directly from this repo
+    cordova plugin add https://github.com/apache/cordova-plugin-splashscreen.git
+    
+
+## Piattaforme supportate
+
+  * Amazon fuoco OS
+  * Android
+  * BlackBerry 10
+  * iOS
+  * Windows Phone 7 e 8
+  * Windows 8
+  * Windows
+  * Browser
+
+## 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" />
+    <preference name="SplashMaintainAspectRatio" value="true|false" />
+    
+
+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](http://cordova.apache.org/docs/en/edge/config_ref_images.md.html).
+
+"SplashMaintainAspectRatio" preferenza è facoltativo. Se impostato su true, schermata iniziale drawable non viene adattata per misura lo schermo, ma invece semplicemente "copre" lo schermo, come CSS "sfondo-dimensione: copertina". Questo è molto utile quando immagini schermata iniziale non possono essere distorta in qualche modo, per esempio quando contengono testo o scenario. Questa impostazione funziona meglio con immagini che hanno grandi margini (zone sicure) che possono essere ritagliati in modo sicuro su schermi con proporzioni diverse.
+
+Il plugin viene ricaricata splash drawable ogni volta che cambia orientamento, è possibile specificare diversi parte per orientamento verticale e orizzontale.
+
+### Stranezze browser
+
+Nel vostro `config. XML`, è possibile utilizzare le seguenti preferenze:
+
+    <platform name="browser">
+        <preference name="SplashScreen" value="images/browser/splashscreen.jpg" /> <!-- defaults to "img/logo.png" -->
+        <preference name="SplashScreenDelay" value="10000" /> <!-- defaults to "3000" -->
+        <preference name="SplashScreenBackgroundColor" value="green" /> <!-- defaults to "#464646" -->
+        <preference name="ShowSplashScreen" value="false" /> <!-- defaults to "true" -->
+        <preference name="SplashScreenWidth" value="600" /> <!-- defaults to "170" -->
+        <preference name="SplashScreenHeight" value="300" /> <!-- defaults to "200" -->
+    </platform>
+    
+
+### iOS stranezze
+
+  * `FadeSplashScreen` (boolean, impostazioni predefinite a `true`): impostare su `false` per impedire che la schermata iniziale e scompaiono quando cambia il relativo stato di visualizzazione.
+    
+        <preference name="FadeSplashScreen" value="false"/>
+        
+
+  * `FadeSplashScreenDuration` (float, il valore predefinito è `2`): specifica il numero di secondi per la schermata iniziale dissolvenza effetto da eseguire.
+    
+        <preference name="FadeSplashScreenDuration" value="4"/>
+        
+
+  * `ShowSplashScreenSpinner` (boolean, impostazioni predefinite a `true`): impostare su `false` per nascondere la filatrice schermata iniziale.
+    
+        <preference name="ShowSplashScreenSpinner" value="false"/>
+        
+
+## splashscreen.Hide
+
+Respingere la schermata iniziale.
+
+    navigator.splashscreen.hide();
+    
+
+### BlackBerry 10, WP8, iOS Quirk
+
+Impostazione `AutoHideSplashScreen` del file `config.xml` deve essere `false`. Per ritardare nascondendo la schermata iniziale per due secondi, aggiungere un timer ad esempio nel gestore eventi `deviceready`:
+
+        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 l'app ha iniziato e ha generato l'evento `deviceready`. 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 nel `file config.xml` sarà automaticamente `show` il tonfo schermo subito dopo il lancio dell'app e prima che completamente ha iniziato e ha ricevuto l'evento `deviceready`. Per ulteriori informazioni su facendo questa configurazione, vedere [icone e schermate iniziali](http://cordova.apache.org/docs/en/edge/config_ref_images.md.html). Per questo motivo, è improbabile che dovete chiamare `navigator.splashscreen.show()` per rendere la schermata visibile per avvio di app.

+ 78 - 0
wl/plugins/cordova-plugin-splashscreen/doc/it/index.md

xqd
@@ -0,0 +1,78 @@
+<!---
+    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.
+-->
+
+# cordova-plugin-splashscreen
+
+Questo plugin Visualizza e nasconde una schermata iniziale durante l'avvio dell'applicazione.
+
+## Installazione
+
+    cordova plugin add cordova-plugin-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
+
+Impostazione `AutoHideSplashScreen` del file `config.xml` deve essere `false`. Per ritardare nascondendo la schermata iniziale per due secondi, aggiungere un timer ad esempio nel gestore eventi `deviceready`:
+
+        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 l'app ha iniziato e ha generato l'evento `deviceready`. 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 nel `file config.xml` sarà automaticamente `show` il tonfo schermo subito dopo il lancio dell'app e prima che completamente ha iniziato e ha ricevuto l'evento `deviceready`. 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.

+ 119 - 0
wl/plugins/cordova-plugin-splashscreen/doc/ja/README.md

xqd
@@ -0,0 +1,119 @@
+<!--
+# 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.
+-->
+
+# cordova-plugin-splashscreen
+
+[![Build Status](https://travis-ci.org/apache/cordova-plugin-splashscreen.svg)](https://travis-ci.org/apache/cordova-plugin-splashscreen)
+
+このプラグインが表示され、アプリケーションの起動中にスプラッシュ スクリーンを非表示にします。
+
+## インストール
+
+    // npm hosted (new) id
+    cordova plugin add cordova-plugin-splashscreen
+    // you may also install directly from this repo
+    cordova plugin add https://github.com/apache/cordova-plugin-splashscreen.git
+    
+
+## サポートされているプラットフォーム
+
+  * アマゾン火 OS
+  * アンドロイド
+  * ブラックベリー 10
+  * iOS
+  * Windows Phone 7 と 8
+  * Windows 8
+  * Windows
+  * ブラウザー
+
+## メソッド
+
+  * splashscreen.show
+  * splashscreen.hide
+
+### Android の癖
+
+あなたの`config.xml`内の次の設定を追加する必要があります。
+
+    <preference name="SplashScreen" value="foo" />
+    <preference name="SplashScreenDelay" value="10000" />
+    <preference name="SplashMaintainAspectRatio" value="true|false" />
+    
+
+Foo ができれば 9 パッチファイル splashscreen ファイルの名前です。 解像度/xml ディレクトリの適切なフォルダーの下に splashcreen ファイルを追加することを確認します。 2 番目のパラメーターは、スプラッシュ ・ スクリーンがの表示時間 (ミリ秒単位) を表します。 デフォルトでは 3000 ミリ秒です。 詳細については、[アイコンとスプラッシュ画面](http://cordova.apache.org/docs/en/edge/config_ref_images.md.html) を参照してください。
+
+"SplashMaintainAspectRatio"の設定はオプションです。 True の場合、スプラッシュ画面描画に設定画面を埋めるために拡大されませんが、代わりに単に「カバー」画面では、CSS のような場合「背景-サイズ: カバー」. これは、たとえば風景またはテキストが含まれている場合、任意の方法でスプラッシュ画面画像が歪むことができない非常に便利です。 この設定は、画面と異なる縦横比で安全にトリミングすることができます大規模なマージン (安全な地域) の画像に適しています。
+
+縦長と横長の異なるドロウアブルを指定できるように、プラグインは向きを変更するたびにスプラッシュ ドロウアブルをリロードします。
+
+### ブラウザーの癖
+
+あなたの`config.xml`で次の設定を使用できます。
+
+    <platform name="browser">
+        <preference name="SplashScreen" value="images/browser/splashscreen.jpg" /> <!-- defaults to "img/logo.png" -->
+        <preference name="SplashScreenDelay" value="10000" /> <!-- defaults to "3000" -->
+        <preference name="SplashScreenBackgroundColor" value="green" /> <!-- defaults to "#464646" -->
+        <preference name="ShowSplashScreen" value="false" /> <!-- defaults to "true" -->
+        <preference name="SplashScreenWidth" value="600" /> <!-- defaults to "170" -->
+        <preference name="SplashScreenHeight" value="300" /> <!-- defaults to "200" -->
+    </platform>
+    
+
+### iOS の癖
+
+  * `FadeSplashScreen`(ブール値、既定で [ `true`): スプラッシュ画面がフェードインとフェードアウトの表示状態が変更されたときすることを防ぐために`false`に設定します。
+    
+        <preference name="FadeSplashScreen" value="false"/>
+        
+
+  * `FadeSplashScreenDuration`(float, デフォルトは`2`): スプラッシュ画面の秒数のフェードを実行する効果を指定します。
+    
+        <preference name="FadeSplashScreenDuration" value="4"/>
+        
+
+  * `ShowSplashScreenSpinner`(ブール値、既定で [ `true`): スプラッシュ スクリーン スピナーを非表示にするを`false`に設定します。
+    
+        <preference name="ShowSplashScreenSpinner" value="false"/>
+        
+
+## 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();
+    
+
+アプリが開始され、`deviceready` イベントが発生するまで、アプリケーションは `navigator.splashscreen.show()` を呼び出すことはできません。 しかし、以来、通常スプラッシュ画面アプリ開始前に表示するものですと思われる、スプラッシュ スクリーンの目的の敗北します。 `config.xml` にいくつかの構成を提供するは自動的に `表示` スプラッシュ画面、アプリを起動後すぐに、それが完全に起動し、`deviceready` イベントを受信する前に。 詳細についてはこの構成を行うには、[アイコンとスプラッシュ画面](http://cordova.apache.org/docs/en/edge/config_ref_images.md.html) を参照してください。 この理由のためにアプリ起動時のスプラッシュ スクリーンを確認 `navigator.splashscreen.show()` をコールする必要がある可能性が高いです。

+ 78 - 0
wl/plugins/cordova-plugin-splashscreen/doc/ja/index.md

xqd
@@ -0,0 +1,78 @@
+<!---
+    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.
+-->
+
+# cordova-plugin-splashscreen
+
+このプラグインが表示され、アプリケーションの起動中にスプラッシュ スクリーンを非表示にします。
+
+## インストール
+
+    cordova plugin add cordova-plugin-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();
+    
+
+アプリが開始され、`deviceready` イベントが発生するまで、アプリケーションは `navigator.splashscreen.show()` を呼び出すことはできません。 しかし、以来、通常スプラッシュ画面アプリ開始前に表示するものですと思われる、スプラッシュ スクリーンの目的の敗北します。 `config.xml` にいくつかの構成を提供するは自動的に `表示` スプラッシュ画面、アプリを起動後すぐに、それが完全に起動し、`deviceready` イベントを受信する前に。 詳細についてはこの構成を行うには、[アイコンとスプラッシュ画面][1] を参照してください。 この理由のためにアプリ起動時のスプラッシュ スクリーンを確認 `navigator.splashscreen.show()` をコールする必要がある可能性が高いです。

+ 119 - 0
wl/plugins/cordova-plugin-splashscreen/doc/ko/README.md

xqd
@@ -0,0 +1,119 @@
+<!--
+# 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.
+-->
+
+# cordova-plugin-splashscreen
+
+[![Build Status](https://travis-ci.org/apache/cordova-plugin-splashscreen.svg)](https://travis-ci.org/apache/cordova-plugin-splashscreen)
+
+이 플러그인은 표시 하 고 응용 프로그램 실행 하는 동안 시작 화면을 숨깁니다.
+
+## 설치
+
+    // npm hosted (new) id
+    cordova plugin add cordova-plugin-splashscreen
+    // you may also install directly from this repo
+    cordova plugin add https://github.com/apache/cordova-plugin-splashscreen.git
+    
+
+## 지원 되는 플랫폼
+
+  * 아마존 화재 운영 체제
+  * 안 드 로이드
+  * 블랙베리 10
+  * iOS
+  * Windows Phone 7과 8
+  * 윈도우 8
+  * 윈도우
+  * 브라우저
+
+## 메서드
+
+  * splashscreen.show
+  * splashscreen.hide
+
+### 안 드 로이드 단점
+
+`Config.xml`에 다음 환경 설정에 추가 해야 합니다.
+
+    <preference name="SplashScreen" value="foo" />
+    <preference name="SplashScreenDelay" value="10000" />
+    <preference name="SplashMaintainAspectRatio" value="true|false" />
+    
+
+여기서 foo splashscreen 파일, 선호 9 패치 파일의 이름입니다. 적절 한 폴더 아래 res/xml 디렉토리에 splashcreen 파일을 추가 해야 합니다. 두 번째 매개 변수는 splashscreen 얼마나 밀리초 단위로 표시 됩니다 나타냅니다. 3000 ms 기본값으로 사용 됩니다. 자세한 내용은 [아이콘 및 시작 화면을](http://cordova.apache.org/docs/en/edge/config_ref_images.md.html) 참조 하십시오.
+
+"SplashMaintainAspectRatio" 취향은 선택 사항입니다. Drawable, 시작 화면 설정 화면에 맞게 확장 되지 하지만 대신 단순히 "커버" CSS 같은 화면 "배경-크기: 덮개". 시작 화면 이미지 예: 풍경 또는 텍스트를 포함 하는 경우 어떤 식으로든에서 왜곡 될 수 없는 경우에 매우 유용 합니다. 이 설정은 큰 여백 (안전 지역) 안전 하 게 다른 종횡비와 화면에 자를 수 있는 이미지에 가장 적합 합니다.
+
+플러그인 다시 로드 스플래시 drawable 방향이 변경 될 때마다 세로 및 가로 방향에 대 한 다른 drawables를 지정할 수 있도록 합니다.
+
+### 브라우저 만지면
+
+`Config.xml`에 다음 기본 설정을 사용할 수 있습니다.
+
+    <platform name="browser">
+        <preference name="SplashScreen" value="images/browser/splashscreen.jpg" /> <!-- defaults to "img/logo.png" -->
+        <preference name="SplashScreenDelay" value="10000" /> <!-- defaults to "3000" -->
+        <preference name="SplashScreenBackgroundColor" value="green" /> <!-- defaults to "#464646" -->
+        <preference name="ShowSplashScreen" value="false" /> <!-- defaults to "true" -->
+        <preference name="SplashScreenWidth" value="600" /> <!-- defaults to "170" -->
+        <preference name="SplashScreenHeight" value="300" /> <!-- defaults to "200" -->
+    </platform>
+    
+
+### iOS 단점
+
+  * `FadeSplashScreen` (부울 `true`로 기본값): 시작 화면 표시 상태로 변경 될 때 밖으로 퇴색 하지 않도록 하려면 `false` 로 설정.
+    
+        <preference name="FadeSplashScreen" value="false"/>
+        
+
+  * `FadeSplashScreenDuration` (부동, `2`기본값): 시작 화면에 대 한 초 페이드 효과를 실행 하는 지정 합니다.
+    
+        <preference name="FadeSplashScreenDuration" value="4"/>
+        
+
+  * `ShowSplashScreenSpinner` (부울 `true`로 기본값): 스플래시 화면 회전자를 숨기려면 `false` 로 설정.
+    
+        <preference name="ShowSplashScreenSpinner" value="false"/>
+        
+
+## 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();
+    
+
+응용 프로그램 시작 및 `deviceready` 이벤트는 발생 될 때까지 응용 프로그램이 `navigator.splashscreen.show()`을 호출할 수 없습니다. 하지만 그 스플래시 스크린의 목적 것 같다 일반적으로 시작 화면이 당신의 애플 리 케이 션 시작 하기 전에 표시 될 운명이 다, 이후. `config.xml에서` 몇 가지 구성을 제공 하 자동으로 스플래시 `표시` 화면 애플 리 케이 션 출시 직후와 그것은 완벽 하 게 시작 하 고 `deviceready` 이벤트를 받은 전에. 이 구성 하 고 자세한 내용은 [아이콘 및 시작 화면을](http://cordova.apache.org/docs/en/edge/config_ref_images.md.html) 참조 하십시오. 이러한 이유로, 그것은 가능성이 시작 화면은 응용 프로그램 시작에 대 한 표시 되도록 `navigator.splashscreen.show()`를 호출 해야입니다.

+ 78 - 0
wl/plugins/cordova-plugin-splashscreen/doc/ko/index.md

xqd
@@ -0,0 +1,78 @@
+<!---
+    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.
+-->
+
+# cordova-plugin-splashscreen
+
+이 플러그인은 표시 하 고 응용 프로그램 실행 하는 동안 시작 화면을 숨깁니다.
+
+## 설치
+
+    cordova plugin add cordova-plugin-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();
+    
+
+응용 프로그램 시작 및 `deviceready` 이벤트는 발생 될 때까지 응용 프로그램이 `navigator.splashscreen.show()`을 호출할 수 없습니다. 하지만 그 스플래시 스크린의 목적 것 같다 일반적으로 시작 화면이 당신의 애플 리 케이 션 시작 하기 전에 표시 될 운명이 다, 이후. `config.xml에서` 몇 가지 구성을 제공 하 자동으로 스플래시 `표시` 화면 애플 리 케이 션 출시 직후와 그것은 완벽 하 게 시작 하 고 `deviceready` 이벤트를 받은 전에. 이 구성 하 고 자세한 내용은 [아이콘 및 시작 화면을][1] 참조 하십시오. 이러한 이유로, 그것은 가능성이 시작 화면은 응용 프로그램 시작에 대 한 표시 되도록 `navigator.splashscreen.show()`를 호출 해야입니다.

+ 119 - 0
wl/plugins/cordova-plugin-splashscreen/doc/pl/README.md

xqd
@@ -0,0 +1,119 @@
+<!--
+# 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.
+-->
+
+# cordova-plugin-splashscreen
+
+[![Build Status](https://travis-ci.org/apache/cordova-plugin-splashscreen.svg)](https://travis-ci.org/apache/cordova-plugin-splashscreen)
+
+Ten plugin wyświetla i ukrywa ekran powitalny podczas uruchamiania aplikacji.
+
+## Instalacja
+
+    // npm hosted (new) id
+    cordova plugin add cordova-plugin-splashscreen
+    // you may also install directly from this repo
+    cordova plugin add https://github.com/apache/cordova-plugin-splashscreen.git
+    
+
+## Obsługiwane platformy
+
+  * Amazon Fire OS
+  * Android
+  * BlackBerry 10
+  * iOS
+  * Windows Phone 7 i 8
+  * Windows 8
+  * Windows
+  * Przeglądarka
+
+## 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" />
+    <preference name="SplashMaintainAspectRatio" value="true|false" />
+    
+
+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](http://cordova.apache.org/docs/en/edge/config_ref_images.md.html).
+
+"SplashMaintainAspectRatio" preferencji jest opcjonalne. Jeśli zestaw na wartość true, ekran powitalny dolarowe nie jest rozciągnięty do ekranów, ale zamiast po prostu "obejmuje" ekranu, jak CSS "tło-rozmiar: okładka". Jest to bardzo przydatne, kiedy opryskać tęcza obrazy nie zniekształcony w jakikolwiek sposób, na przykład, gdy zawierają one dekoracje lub tekst. To ustawienie działa najlepiej z obrazów, które mają duże marginesy (bezpiecznych obszarów), które mogą być bezpiecznie przycięte na ekrany z różnych proporcji.
+
+Plugin ładuje rozchlapać dolarowe, gdy zmienia orientację, tak można określić różnych drawables do orientacji pionowej i poziomej.
+
+### Quirks przeglądarki
+
+W pliku `config.xml`można użyć następujące preferencje:
+
+    <platform name="browser">
+        <preference name="SplashScreen" value="images/browser/splashscreen.jpg" /> <!-- defaults to "img/logo.png" -->
+        <preference name="SplashScreenDelay" value="10000" /> <!-- defaults to "3000" -->
+        <preference name="SplashScreenBackgroundColor" value="green" /> <!-- defaults to "#464646" -->
+        <preference name="ShowSplashScreen" value="false" /> <!-- defaults to "true" -->
+        <preference name="SplashScreenWidth" value="600" /> <!-- defaults to "170" -->
+        <preference name="SplashScreenHeight" value="300" /> <!-- defaults to "200" -->
+    </platform>
+    
+
+### Dziwactwa iOS
+
+  * `FadeSplashScreen` (wartość logiczna, domyślnie `true`): zestaw na `false` , aby zapobiec Znikająca i odkładane po zmianie stanu wyświetlania ekranu powitalnego.
+    
+        <preference name="FadeSplashScreen" value="false"/>
+        
+
+  * `FadeSplashScreenDuration` (float, domyślnie `2`): określa liczbę sekund dla ekranu powitalnego zanikanie efekt do wykonać.
+    
+        <preference name="FadeSplashScreenDuration" value="4"/>
+        
+
+  * `ShowSplashScreenSpinner` (wartość logiczna, domyślnie `true`): zestaw na `false` , aby ukryć pokrętła ekran powitalny.
+    
+        <preference name="ShowSplashScreenSpinner" value="false"/>
+        
+
+## splashscreen.Hide
+
+Odrzucić ten opryskaæ têcza.
+
+    navigator.splashscreen.hide();
+    
+
+### Jeżyna 10, WP8, iOS dziwactwo
+
+Plik `config.xml` `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żna wywołać `navigator.splashscreen.show()`, aż aplikacja została uruchomiona i zdarzenie `deviceready` 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 `pliku config.xml` będzie automatycznie `show` splash na ekranie natychmiast po uruchomienie aplikacji i przed pełni rozpoczął i odebrał zdarzenie `deviceready`. Aby uzyskać więcej informacji na robienie tej konfiguracji, zobacz [ikony i ekrany powitalne w aplikacjach](http://cordova.apache.org/docs/en/edge/config_ref_images.md.html). Z tego powodu jest mało prawdopodobne, należy zadzwonić `navigator.splashscreen.show()`, aby wyświetlić ekran powitalny dla uruchamiania aplikacji.

+ 78 - 0
wl/plugins/cordova-plugin-splashscreen/doc/pl/index.md

xqd
@@ -0,0 +1,78 @@
+<!---
+    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.
+-->
+
+# cordova-plugin-splashscreen
+
+Ten plugin wyświetla i ukrywa ekran powitalny podczas uruchamiania aplikacji.
+
+## Instalacja
+
+    cordova plugin add cordova-plugin-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
+
+Plik `config.xml` `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żna wywołać `navigator.splashscreen.show()`, aż aplikacja została uruchomiona i zdarzenie `deviceready` 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 `pliku config.xml` będzie automatycznie `show` splash na ekranie natychmiast po uruchomienie aplikacji i przed pełni rozpoczął i odebrał zdarzenie `deviceready`. 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.

+ 75 - 0
wl/plugins/cordova-plugin-splashscreen/doc/ru/index.md

xqd
@@ -0,0 +1,75 @@
+<!---
+    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.
+-->
+
+# cordova-plugin-splashscreen
+
+Этот плагин отображает и скрывает экран-заставку при запуске приложения.
+
+## Установка
+
+    cordova plugin add cordova-plugin-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()` для отображения экрана-заставки для запуска приложения.

+ 119 - 0
wl/plugins/cordova-plugin-splashscreen/doc/zh/README.md

xqd
@@ -0,0 +1,119 @@
+<!--
+# 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.
+-->
+
+# cordova-plugin-splashscreen
+
+[![Build Status](https://travis-ci.org/apache/cordova-plugin-splashscreen.svg)](https://travis-ci.org/apache/cordova-plugin-splashscreen)
+
+這個外掛程式顯示和隱藏在應用程式啟動期間的初始螢幕。
+
+## 安裝
+
+    // npm hosted (new) id
+    cordova plugin add cordova-plugin-splashscreen
+    // you may also install directly from this repo
+    cordova plugin add https://github.com/apache/cordova-plugin-splashscreen.git
+    
+
+## 支援的平臺
+
+  * 亞馬遜火 OS
+  * Android 系統
+  * 黑莓 10
+  * iOS
+  * Windows Phone 7 和 8
+  * Windows 8
+  * Windows
+  * 瀏覽器
+
+## 方法
+
+  * splashscreen.show
+  * splashscreen.hide
+
+### Android 的怪癖
+
+在你的`config.xml`,您需要添加以下優惠:
+
+    <preference name="SplashScreen" value="foo" />
+    <preference name="SplashScreenDelay" value="10000" />
+    <preference name="SplashMaintainAspectRatio" value="true|false" />
+    
+
+美孚在哪裡閃屏檔,最好是 9 修補程式檔的名稱。 請確保您的 splashcreen 檔添加到 res/xml 目錄下相應的資料夾。 第二個參數表示多久閃屏會顯示以毫秒為單位。 它將預設為 3000 毫秒。 有關更多資訊,請參見 [圖示和啟動畫面](http://cordova.apache.org/docs/en/edge/config_ref_images.md.html)。
+
+"SplashMaintainAspectRatio"首選項是可選的。 如果設置為 true,可繪製的初始螢幕不會拉伸以適合螢幕,但相反只是"覆蓋"螢幕,像 CSS"背景-大小: 蓋"。 這是非常有用的不能以任何方式,例如當他們包含文本或風景畸變閃屏圖像時。 此設置適用于有大利潤 (安全區),可以安全地裁剪不同長寬比與螢幕上的圖像。
+
+該外掛程式重新載入初始可繪製只要方向發生變化,所以您可以指定不同的畫板為縱向和橫向方向。
+
+### 瀏覽器的怪癖
+
+你可以用你的`config.xml`下列優先選項:
+
+    <platform name="browser">
+        <preference name="SplashScreen" value="images/browser/splashscreen.jpg" /> <!-- defaults to "img/logo.png" -->
+        <preference name="SplashScreenDelay" value="10000" /> <!-- defaults to "3000" -->
+        <preference name="SplashScreenBackgroundColor" value="green" /> <!-- defaults to "#464646" -->
+        <preference name="ShowSplashScreen" value="false" /> <!-- defaults to "true" -->
+        <preference name="SplashScreenWidth" value="600" /> <!-- defaults to "170" -->
+        <preference name="SplashScreenHeight" value="300" /> <!-- defaults to "200" -->
+    </platform>
+    
+
+### iOS 的怪癖
+
+  * `FadeSplashScreen`(預設為`true`的布林值): 設置為`false` ,以防止出現閃屏衰落和退出其顯示狀態發生變化時。
+    
+        <preference name="FadeSplashScreen" value="false"/>
+        
+
+  * `FadeSplashScreenDuration`(float,預設為`2`): 指定的閃屏秒數淡出效果來執行。
+    
+        <preference name="FadeSplashScreenDuration" value="4"/>
+        
+
+  * `ShowSplashScreenSpinner`(boolean, `true`的布林值): 設置為`false`來隱藏初始螢幕微調框。
+    
+        <preference name="ShowSplashScreenSpinner" value="false"/>
+        
+
+## splashscreen.hide
+
+解雇的閃屏。
+
+    navigator.splashscreen.hide();
+    
+
+### 黑莓 10,WP8,iOS 怪癖
+
+`config.xml` 檔 `AutoHideSplashScreen` 設置必須是 `假` 的。 若要延遲兩秒鐘隱藏的閃屏,`deviceready` 事件處理常式中添加一個計時器,如下所示:
+
+        setTimeout(function() {
+            navigator.splashscreen.hide();
+        }, 2000);
+    
+
+## splashscreen.show
+
+顯示初始螢幕。
+
+    navigator.splashscreen.show();
+    
+
+您的應用程式無法調用 `navigator.splashscreen.show()`,直到該應用程式已啟動,且觸發了 `deviceready` 事件。 但是,由於通常的閃屏為了是可見的在您的應用程式啟動之前,這似乎會打敗閃屏的目的。 提供一些配置在 `config.xml` 中的會自動 `show` 初始螢幕您的應用程式啟動後立即和之前它已經完全起步並收到 `deviceready` 事件。 做這種配置的詳細資訊,請參閱 [圖示和啟動畫面](http://cordova.apache.org/docs/en/edge/config_ref_images.md.html)。 出於此原因,不太可能您需要調用 `navigator.splashscreen.show()`,使初始螢幕可見為應用程式啟動。

+ 78 - 0
wl/plugins/cordova-plugin-splashscreen/doc/zh/index.md

xqd
@@ -0,0 +1,78 @@
+<!---
+    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.
+-->
+
+# cordova-plugin-splashscreen
+
+這個外掛程式顯示和隱藏在應用程式啟動期間的初始螢幕。
+
+## 安裝
+
+    cordova plugin add cordova-plugin-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();
+    
+
+### 黑莓 10,WP8,iOS 怪癖
+
+`config.xml` 檔 `AutoHideSplashScreen` 設置必須是 `假` 的。 若要延遲兩秒鐘隱藏的閃屏,`deviceready` 事件處理常式中添加一個計時器,如下所示:
+
+        setTimeout(function() {
+            navigator.splashscreen.hide();
+        }, 2000);
+    
+
+## splashscreen.show
+
+顯示初始螢幕。
+
+    navigator.splashscreen.show();
+    
+
+您的應用程式無法調用 `navigator.splashscreen.show()`,直到該應用程式已啟動,且觸發了 `deviceready` 事件。 但是,由於通常的閃屏為了是可見的在您的應用程式啟動之前,這似乎會打敗閃屏的目的。 提供一些配置在 `config.xml` 中的會自動 `show` 初始螢幕您的應用程式啟動後立即和之前它已經完全起步並收到 `deviceready` 事件。 做這種配置的詳細資訊,請參閱 [圖示和啟動畫面][1]。 出於此原因,不太可能您需要調用 `navigator.splashscreen.show()`,使初始螢幕可見為應用程式啟動。

+ 52 - 0
wl/plugins/cordova-plugin-splashscreen/package.json

xqd
@@ -0,0 +1,52 @@
+{
+  "name": "cordova-plugin-splashscreen",
+  "version": "3.2.2",
+  "description": "Cordova Splashscreen Plugin",
+  "cordova": {
+    "id": "cordova-plugin-splashscreen",
+    "platforms": [
+      "android",
+      "amazon-fireos",
+      "ubuntu",
+      "ios",
+      "blackberry10",
+      "wp8",
+      "windows8",
+      "windows",
+      "tizen"
+    ]
+  },
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/apache/cordova-plugin-splashscreen"
+  },
+  "keywords": [
+    "cordova",
+    "splashscreen",
+    "ecosystem:cordova",
+    "cordova-android",
+    "cordova-amazon-fireos",
+    "cordova-ubuntu",
+    "cordova-ios",
+    "cordova-blackberry10",
+    "cordova-wp8",
+    "cordova-windows8",
+    "cordova-windows",
+    "cordova-tizen"
+  ],
+  "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": [
+    {
+      "name": "cordova-android",
+      "version": ">=3.6.0"
+    }
+  ],
+  "author": "Apache Software Foundation",
+  "license": "Apache-2.0",
+  "devDependencies": {
+    "jshint": "^2.6.0"
+  }
+}

+ 134 - 0
wl/plugins/cordova-plugin-splashscreen/plugin.xml

xqd
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+
+<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
+           id="cordova-plugin-splashscreen"
+      version="3.2.2">
+    <name>Splashscreen</name>
+    <description>Cordova Splashscreen Plugin</description>
+    <license>Apache 2.0</license>
+    <keywords>cordova,splashscreen</keywords>
+    <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 -->
+    </engines>
+
+    <js-module src="www/splashscreen.js" name="SplashScreen">
+        <clobbers target="navigator.splashscreen" />
+    </js-module>
+
+    <!-- android -->
+    <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="onload" value="true"/>
+            </feature>
+        </config-file>
+
+        <source-file src="src/android/SplashScreen.java" target-dir="src/org/apache/cordova/splashscreen" />
+    </platform>
+
+    <!-- amazon-fireos -->
+    <platform name="amazon-fireos">
+        <config-file target="res/xml/config.xml" parent="/*">
+            <feature name="SplashScreen">
+            <param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen"/>
+            </feature>
+        </config-file>
+
+        <source-file src="src/android/SplashScreen.java" target-dir="src/org/apache/cordova/splashscreen" />
+    </platform>
+
+    <!-- ubuntu -->
+    <platform name="ubuntu">
+        <header-file src="src/ubuntu/splashscreen.h" />
+        <source-file src="src/ubuntu/splashscreen.cpp" />
+    </platform>
+
+    <!-- ios -->
+    <platform name="ios">
+        <config-file target="config.xml" parent="/*">
+		    <feature name="SplashScreen">
+			    <param name="ios-package" value="CDVSplashScreen"/>
+			    <param name="onload" value="true"/>
+		    </feature>
+        </config-file>
+
+        <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>
+
+    <!-- wp8 -->
+    <platform name="wp8">
+        <config-file target="config.xml" parent="/*">
+            <feature name="SplashScreen">
+                <param name="wp-package" value="SplashScreen"/>
+                <param name="onload" value="true"/>
+            </feature>
+        </config-file>
+
+        <source-file src="src/wp/SplashScreen.cs" />
+        <source-file src="src/wp/ResolutionHelper.cs" />
+
+    </platform>
+
+    <!-- windows8 -->
+    <platform name="windows8">
+        <js-module src="www/windows/SplashScreenProxy.js" name="SplashScreenProxy">
+            <merges target="" />
+        </js-module>
+    </platform>
+
+    <!-- windows -->
+    <platform name="windows">
+        <js-module src="www/windows/SplashScreenProxy.js" name="SplashScreenProxy">
+            <merges target="" />
+        </js-module>
+    </platform>
+
+    <!-- tizen -->
+    <platform name="tizen">
+        <js-module src="src/tizen/SplashScreenProxy.js" name="SplashScreenProxy">
+            <runs />
+        </js-module>
+    </platform>
+
+    <!-- browser -->
+    <platform name="browser">
+        <js-module src="src/browser/SplashScreenProxy.js" name="SplashScreenProxy">
+            <runs />
+        </js-module>
+    </platform>
+</plugin>

+ 378 - 0
wl/plugins/cordova-plugin-splashscreen/src/android/SplashScreen.java

xqd
@@ -0,0 +1,378 @@
+/*
+       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.
+*/
+
+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.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
+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 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;
+        }
+    }
+
+    @Override
+    protected void pluginInitialize() {
+        if (HAS_BUILT_IN_SPLASH_SCREEN) {
+            return;
+        }
+        // Make WebView invisible while loading URL
+        getView().setVisibility(View.INVISIBLE);
+        int drawableId = preferences.getInteger("SplashDrawableId", 0);
+        if (drawableId == 0) {
+            String splashResource = preferences.getString("SplashScreen", "screen");
+            if (splashResource != null) {
+                drawableId = cordova.getActivity().getResources().getIdentifier(splashResource, "drawable", cordova.getActivity().getClass().getPackage().getName());
+                if (drawableId == 0) {
+                    drawableId = cordova.getActivity().getResources().getIdentifier(splashResource, "drawable", cordova.getActivity().getPackageName());
+                }
+                preferences.set("SplashDrawableId", drawableId);
+            }
+        }
+
+        // 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_SPLASHSCREEN_DURATION) : 0;
+
+        if (fadeSplashScreenDuration < 30) {
+            // [CB-9750] This value used to be in decimal seconds, so we will assume that if someone specifies 10
+            // they mean 10 seconds, and not the meaningless 10ms
+            fadeSplashScreenDuration *= 1000;
+        }
+
+        return fadeSplashScreenDuration;
+    }
+
+    @Override
+    public void onPause(boolean multitasking) {
+        if (HAS_BUILT_IN_SPLASH_SCREEN) {
+            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;
+        }
+
+        callbackContext.success();
+        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 = preferences.getInteger("SplashDrawableId", 0);
+                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 (splashDialog != null && splashDialog.isShowing()) {
+                    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 && splashDialog.isShowing()) {
+                                    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 = preferences.getInteger("SplashDrawableId", 0);
+
+        final int fadeSplashScreenDuration = getFadeDuration();
+        final int effectiveSplashDuration = Math.max(0, splashscreenTime - fadeSplashScreenDuration);
+
+        lastHideAfterDelay = hideAfterDelay;
+
+        // 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
+                if ((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);
+
+                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;
+                }
+            }
+        });
+    }
+}

+ 30 - 0
wl/plugins/cordova-plugin-splashscreen/src/blackberry10/index.js

xqd
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2013 Research In Motion Limited.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* global PluginResult */
+
+module.exports = {
+    show: function (success, fail, args, env) {
+        var result = new PluginResult(args, env);
+        result.error("Not supported on platform", false);
+    },
+
+    hide: function (success, fail, args, env) {
+        var result = new PluginResult(args, env);
+        window.qnx.webplatform.getApplication().windowVisible = true;
+        result.ok(undefined, false);
+    }
+};

+ 138 - 0
wl/plugins/cordova-plugin-splashscreen/src/browser/SplashScreenProxy.js

xqd
@@ -0,0 +1,138 @@
+/*
+ *
+ * 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');
+
+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";
+
+            localSplashImage = document.createElement("img");
+            localSplashImage.src = imageSrc;
+            localSplashImage.style.position = "absolute";
+
+            updateImageLocation();
+
+            localSplash.appendChild(localSplashImage);
+            document.body.appendChild(localSplash);
+        }
+    },
+    hide: function () {
+        if(localSplash) {
+            window.removeEventListener("resize", onResize, false);
+            document.body.removeChild(localSplash);
+            localSplash = null;
+        }
+    }
+};
+
+/**
+ * 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;
+        imageSrc = cfg.getPreferenceValue('SplashScreen') || imageSrc;
+        bgColor = cfg.getPreferenceValue('SplashScreenBackgroundColor') || bgColor;
+        splashImageWidth = cfg.getPreferenceValue('SplashScreenWidth') || splashImageWidth;
+        splashImageHeight = cfg.getPreferenceValue('SplashScreenHeight') || splashImageHeight;
+    } catch(e) {
+        var msg = '[Browser][SplashScreen] Error occured 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 splashcreen if it is enabled.
+ */
+(function initAndShow() {
+    configHelper.readConfig(function(config) {
+        readPreferencesFromCfg(config);
+        showAndHide();
+    }, function(err) {
+        console.error(err);
+    });
+})();
+
+module.exports = SplashScreen;
+
+require("cordova/exec/proxy").add("SplashScreen", SplashScreen);
+

+ 45 - 0
wl/plugins/cordova-plugin-splashscreen/src/ios/CDVSplashScreen.h

xqd
@@ -0,0 +1,45 @@
+/*
+ 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 <Foundation/Foundation.h>
+#import <Cordova/CDVPlugin.h>
+
+typedef struct {
+    BOOL iPhone;
+    BOOL iPad;
+    BOOL iPhone4;
+    BOOL iPhone5;
+    BOOL iPhone6;
+    BOOL iPhone6Plus;
+    BOOL retina;
+    
+} CDV_iOSDevice;
+
+@interface CDVSplashScreen : CDVPlugin {
+    UIActivityIndicatorView* _activityView;
+    UIImageView* _imageView;
+    NSString* _curImageName;
+    BOOL _visible;
+    BOOL _destroyed;
+}
+
+- (void)show:(CDVInvokedUrlCommand*)command;
+- (void)hide:(CDVInvokedUrlCommand*)command;
+
+@end

+ 474 - 0
wl/plugins/cordova-plugin-splashscreen/src/ios/CDVSplashScreen.m

xqd
@@ -0,0 +1,474 @@
+/*
+ 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 "CDVSplashScreen.h"
+#import <Cordova/CDVViewController.h>
+#import <Cordova/CDVScreenOrientationDelegate.h>
+#import "CDVViewController+SplashScreen.h"
+
+#define kSplashScreenDurationDefault 3000.0f
+
+
+@implementation CDVSplashScreen
+
+- (void)pluginInitialize
+{
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(pageDidLoad) name:CDVPageDidLoadNotification object:nil];
+
+    [self setVisible:YES];
+}
+
+- (void)show:(CDVInvokedUrlCommand*)command
+{
+    [self setVisible:YES];
+}
+
+- (void)hide:(CDVInvokedUrlCommand*)command
+{
+    [self setVisible:NO andForce:YES];
+}
+
+- (void)pageDidLoad
+{
+    id autoHideSplashScreenValue = [self.commandDelegate.settings objectForKey:[@"AutoHideSplashScreen" lowercaseString]];
+
+    // if value is missing, default to yes
+    if ((autoHideSplashScreenValue == nil) || [autoHideSplashScreenValue boolValue]) {
+        [self setVisible:NO];
+    }
+}
+
+- (void)observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object change:(NSDictionary*)change context:(void*)context
+{
+    [self updateImage];
+}
+
+- (void)createViews
+{
+    /*
+     * The Activity View is the top spinning throbber in the status/battery bar. We init it with the default Grey Style.
+     *
+     *     whiteLarge = UIActivityIndicatorViewStyleWhiteLarge
+     *     white      = UIActivityIndicatorViewStyleWhite
+     *     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) ?
+        [(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"])
+    {
+        topActivityIndicatorStyle = UIActivityIndicatorViewStyleWhiteLarge;
+    }
+    else if ([topActivityIndicator isEqualToString:@"white"])
+    {
+        topActivityIndicatorStyle = UIActivityIndicatorViewStyleWhite;
+    }
+    else if ([topActivityIndicator isEqualToString:@"gray"])
+    {
+        topActivityIndicatorStyle = UIActivityIndicatorViewStyleGray;
+    }
+
+    UIView* parentView = self.viewController.view;
+    parentView.userInteractionEnabled = NO;  // disable user interaction while splashscreen is shown
+    _activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:topActivityIndicatorStyle];
+    _activityView.center = CGPointMake(parentView.bounds.size.width / 2, parentView.bounds.size.height / 2);
+    _activityView.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin
+        | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleRightMargin;
+    [_activityView startAnimating];
+
+    // Set the frame & image later.
+    _imageView = [[UIImageView alloc] init];
+    [parentView addSubview:_imageView];
+
+    id showSplashScreenSpinnerValue = [self.commandDelegate.settings objectForKey:[@"ShowSplashScreenSpinner" lowercaseString]];
+    // backwards compatibility - if key is missing, default to true
+    if ((showSplashScreenSpinnerValue == nil) || [showSplashScreenSpinnerValue boolValue])
+    {
+        [parentView addSubview:_activityView];
+    }
+
+    // Frame is required when launching in portrait mode.
+    // Bounds for landscape since it captures the rotation.
+    [parentView addObserver:self forKeyPath:@"frame" options:0 context:nil];
+    [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;
+    _activityView = nil;
+    _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"];
+}
+
+- (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);
+    
+    return device;
+}
+
+- (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"];
+    
+    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)
+    {
+        imageName = [imageName stringByDeletingPathExtension];
+    }
+    else
+    {
+        imageName = @"Default";
+    }
+
+    // Add Asset Catalog specific prefixes
+    if ([imageName isEqualToString:@"LaunchImage"])
+    {
+        if (device.iPhone4 || device.iPhone5 || device.iPad) {
+            imageName = [imageName stringByAppendingString:@"-700"];
+        } else if(device.iPhone6) {
+            imageName = [imageName stringByAppendingString:@"-800"];
+        } else if(device.iPhone6Plus) {
+            imageName = [imageName stringByAppendingString:@"-800"];
+            if (currentOrientation == UIInterfaceOrientationPortrait || currentOrientation == UIInterfaceOrientationPortraitUpsideDown)
+            {
+                imageName = [imageName stringByAppendingString:@"-Portrait"];
+            }
+        }
+    }
+
+    if (device.iPhone5)
+    { // does not support landscape
+        imageName = [imageName stringByAppendingString:@"-568h"];
+    }
+    else if (device.iPhone6)
+    { // does not support landscape
+        imageName = [imageName stringByAppendingString:@"-667h"];
+    }
+    else if (device.iPhone6Plus)
+    { // supports landscape
+        if (isOrientationLocked)
+        {
+            imageName = [imageName stringByAppendingString:(supportsLandscape ? @"-Landscape" : @"")];
+        }
+        else
+        {
+            switch (currentOrientation)
+            {
+                case UIInterfaceOrientationLandscapeLeft:
+                case UIInterfaceOrientationLandscapeRight:
+                        imageName = [imageName stringByAppendingString:@"-Landscape"];
+                    break;
+                default:
+                    break;
+            }
+        }
+        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:
+                    imageName = [imageName stringByAppendingString:@"-Portrait"];
+                    break;
+            }
+        }
+    }
+    
+    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 getCurrentOrientation] delegate:(id<CDVScreenOrientationDelegate>)self.viewController device:[self getCurrentDevice]];
+
+    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)
+    {
+        [self updateBounds];
+    }
+    else
+    {
+        NSLog(@"WARNING: The splashscreen image named %@ was not found", imageName);
+    }
+}
+
+- (void)updateBounds
+{
+    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 = [UIApplication sharedApplication].statusBarOrientation;
+    CGAffineTransform imgTransform = CGAffineTransformIdentity;
+
+    /* If and only if an iPhone application is landscape-only as per
+     * UISupportedInterfaceOrientations, the view controller's orientation is
+     * landscape. In this case the image must be rotated in order to appear
+     * correctly.
+     */
+    CDV_iOSDevice device = [self getCurrentDevice];
+    if (UIInterfaceOrientationIsLandscape(orientation) && !device.iPhone6Plus && !device.iPad)
+    {
+        imgTransform = CGAffineTransformMakeRotation(M_PI / 2);
+        imgBounds.size = CGSizeMake(imgBounds.size.height, imgBounds.size.width);
+    }
+
+    // There's a special case when the image is the size of the screen.
+    if (CGSizeEqualToSize(screenSize, imgBounds.size))
+    {
+        CGRect statusFrame = [self.viewController.view convertRect:[UIApplication sharedApplication].statusBarFrame fromView:nil];
+        if (!(IsAtLeastiOSVersion(@"7.0")))
+        {
+            imgBounds.origin.y -= statusFrame.size.height;
+        }
+    }
+    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)
+        {
+            ratio = viewBounds.size.width / imgBounds.size.width;
+        }
+        else
+        {
+            ratio = viewBounds.size.height / imgBounds.size.height;
+        }
+        imgBounds.size.height *= ratio;
+        imgBounds.size.width *= ratio;
+    }
+
+    _imageView.transform = imgTransform;
+    _imageView.frame = imgBounds;
+}
+
+- (void)setVisible:(BOOL)visible
+{
+    [self setVisible:visible andForce:NO];
+}
+
+- (void)setVisible:(BOOL)visible andForce:(BOOL)force
+{
+    if (visible != _visible || force)
+    {
+        _visible = visible;
+
+        id fadeSplashScreenValue = [self.commandDelegate.settings objectForKey:[@"FadeSplashScreen" lowercaseString]];
+        id fadeSplashScreenDuration = [self.commandDelegate.settings objectForKey:[@"FadeSplashScreenDuration" lowercaseString]];
+
+        float fadeDuration = fadeSplashScreenDuration == nil ? kSplashScreenDurationDefault : [fadeSplashScreenDuration floatValue];
+
+        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
+                                        }
+                                    }
+                    ];
+                }
+            })));
+        }
+    }
+}
+
+@end

+ 28 - 0
wl/plugins/cordova-plugin-splashscreen/src/ios/CDVViewController+SplashScreen.h

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

+ 89 - 0
wl/plugins/cordova-plugin-splashscreen/src/ios/CDVViewController+SplashScreen.m

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

+ 43 - 0
wl/plugins/cordova-plugin-splashscreen/src/tizen/SplashScreenProxy.js

xqd
@@ -0,0 +1,43 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+( function() {
+
+var win = null;
+
+module.exports = {
+    show: function() {
+        if ( win === null ) {
+            win = window.open('splashscreen.html');
+        }
+    },
+
+    hide: function() {
+        if ( win !== null ) {
+            win.close();
+            win = null;
+        }
+    }
+};
+
+require("cordova/tizen/commandProxy").add("SplashScreen", module.exports);
+
+})();

+ 42 - 0
wl/plugins/cordova-plugin-splashscreen/src/ubuntu/splashscreen.cpp

xqd
@@ -0,0 +1,42 @@
+/*
+ *
+ * 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);
+}

+ 52 - 0
wl/plugins/cordova-plugin-splashscreen/src/ubuntu/splashscreen.h

xqd
@@ -0,0 +1,52 @@
+/*
+ *
+ * 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

+ 39 - 0
wl/plugins/cordova-plugin-splashscreen/src/wp/ResolutionHelper.cs

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

+ 255 - 0
wl/plugins/cordova-plugin-splashscreen/src/wp/SplashScreen.cs

xqd
@@ -0,0 +1,255 @@
+/*
+    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 System;
+using System.Net;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Shapes;
+using Microsoft.Phone.Info;
+using System.Windows.Controls.Primitives;
+using System.Diagnostics;
+using System.Windows.Media.Imaging;
+using System.Windows.Resources;
+using System.IO;
+using System.Xml.Linq;
+using System.Linq;
+using System.Windows.Threading;
+
+namespace WPCordovaClassLib.Cordova.Commands
+{
+    /// <summary>
+    /// Listens for changes to the state of the battery on the device.
+    /// Currently only the "isPlugged" parameter available via native APIs.
+    /// </summary>
+    public class SplashScreen : BaseCommand
+    {
+        private Popup popup;
+
+        // 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()
+        {
+            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,
+                                  HorizontalAlignment = HorizontalAlignment.Stretch,
+                                  VerticalAlignment = VerticalAlignment.Center
+
+            };
+        }
+
+        public override void OnInit()
+        {
+            // we only want to autoload on the first page load.
+            // but OnInit is called for every page load.
+            if (!SplashScreen.WasShown)
+            {
+                SplashScreen.WasShown = true;
+                show();
+            }
+        }
+
+        private void LoadConfigPrefs()
+        {
+            StreamResourceInfo streamInfo = Application.GetResourceStream(new Uri("config.xml", UriKind.Relative));
+            if (streamInfo != null)
+            {
+                using (StreamReader sr = new StreamReader(streamInfo.Stream))
+                {
+                    //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)
+                {
+                    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.SetTarget(animation, popup.Child);
+                    Storyboard.SetTargetProperty(animation, new PropertyPath("Opacity"));
+                    story.Children.Add(animation);
+
+                    story.Begin();
+
+                    popup.IsOpen = true;
+
+                    if (prefAutoHide)
+                    {
+                        StartAutoHideTimer();
+                    }
+                }
+            });
+        }
+
+        public void hide(string options = null)
+        {
+            Deployment.Current.Dispatcher.BeginInvoke(() =>
+            {
+                if (popup.IsOpen)
+                {
+                    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();
+                }
+            });
+        }
+
+        private void StartAutoHideTimer()
+        {
+            var timer = new DispatcherTimer() { Interval = TimeSpan.FromMilliseconds(prefDelay) };
+            timer.Tick += (object sender, EventArgs e) =>
+            {
+                hide();
+                timer.Stop();
+            };
+            timer.Start();
+        }
+    }
+}

+ 7 - 0
wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest.xcworkspace/contents.xcworkspacedata

xqd
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "container:CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj">
+   </FileRef>
+</Workspace>

+ 41 - 0
wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest.xcworkspace/xcshareddata/CDVSplashScreenTest.xccheckout

xqd
@@ -0,0 +1,41 @@
+<?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">
+<plist version="1.0">
+<dict>
+	<key>IDESourceControlProjectFavoriteDictionaryKey</key>
+	<false/>
+	<key>IDESourceControlProjectIdentifier</key>
+	<string>6BE9AD73-1B9F-4362-98D7-DC631BEC6185</string>
+	<key>IDESourceControlProjectName</key>
+	<string>CDVSplashScreenTest</string>
+	<key>IDESourceControlProjectOriginsDictionary</key>
+	<dict>
+		<key>BEF5A5D0FF64801E558286389440357A9233D7DB</key>
+		<string>https://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen.git</string>
+	</dict>
+	<key>IDESourceControlProjectPath</key>
+	<string>tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj</string>
+	<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
+	<dict>
+		<key>BEF5A5D0FF64801E558286389440357A9233D7DB</key>
+		<string>../../../../..</string>
+	</dict>
+	<key>IDESourceControlProjectURL</key>
+	<string>https://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen.git</string>
+	<key>IDESourceControlProjectVersion</key>
+	<integer>111</integer>
+	<key>IDESourceControlProjectWCCIdentifier</key>
+	<string>BEF5A5D0FF64801E558286389440357A9233D7DB</string>
+	<key>IDESourceControlProjectWCConfigurations</key>
+	<array>
+		<dict>
+			<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
+			<string>public.vcs.git</string>
+			<key>IDESourceControlWCCIdentifierKey</key>
+			<string>BEF5A5D0FF64801E558286389440357A9233D7DB</string>
+			<key>IDESourceControlWCCName</key>
+			<string>cordova-plugin-splashscreen</string>
+		</dict>
+	</array>
+</dict>
+</plist>

+ 77 - 0
wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest.xcworkspace/xcshareddata/xcschemes/CordovaLib.xcscheme

xqd
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "0600"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "D2AAC07D0554694100DB518D"
+               BuildableName = "libCordova.a"
+               BlueprintName = "CordovaLib"
+               ReferencedContainer = "container:node_modules/cordova-ios/CordovaLib/CordovaLib.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      buildConfiguration = "Debug">
+      <Testables>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Debug"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      allowLocationSimulation = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "D2AAC07D0554694100DB518D"
+            BuildableName = "libCordova.a"
+            BlueprintName = "CordovaLib"
+            ReferencedContainer = "container:node_modules/cordova-ios/CordovaLib/CordovaLib.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Release"
+      debugDocumentVersioning = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "D2AAC07D0554694100DB518D"
+            BuildableName = "libCordova.a"
+            BlueprintName = "CordovaLib"
+            ReferencedContainer = "container:node_modules/cordova-ios/CordovaLib/CordovaLib.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

+ 1 - 0
wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest/.npmignore

xqd
@@ -0,0 +1 @@
+build

+ 702 - 0
wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest/CDVSplashScreenLibTests/ImageNameTest.m

xqd
@@ -0,0 +1,702 @@
+/*
+ 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 <UIKit/UIKit.h>
+#import <XCTest/XCTest.h>
+#import <Cordova/CDVScreenOrientationDelegate.h>
+#import "CDVSplashScreen.h"
+#import "ImageNameTestDelegates.h"
+
+const CDV_iOSDevice CDV_iOSDeviceZero = { 0, 0, 0, 0, 0, 0 };
+
+@interface ImageNameTest : XCTestCase
+
+@property (nonatomic, strong) CDVSplashScreen* plugin;
+
+@end
+
+@interface CDVSplashScreen ()
+
+// expose private interface
+- (NSString*)getImageName:(UIInterfaceOrientation)currentOrientation delegate:(id<CDVScreenOrientationDelegate>)orientationDelegate device:(CDV_iOSDevice)device;
+
+@end
+
+@implementation ImageNameTest
+
+- (void)setUp {
+    [super setUp];
+    // Put setup code here. This method is called before the invocation of each test method in the class.
+    
+    self.plugin = [[CDVSplashScreen alloc] init];
+}
+
+- (void)tearDown {
+    // Put teardown code here. This method is called after the invocation of each test method in the class.
+    [super tearDown];
+}
+
+- (void) orientationHelper:(id<CDVScreenOrientationDelegate>)delegate expectedImageNameDictionary:(NSDictionary*)expectedImageNameDictionary device:(CDV_iOSDevice)device{
+    
+    NSString* name = nil;
+    NSString* expectedImageName = nil;
+    UIInterfaceOrientation currentOrientation;
+    NSString* deviceName = device.iPad? @"iPad" : device.iPhone6Plus? @"iPhone6Plus": device.iPhone6? @"iPhone6": device.iPhone5? @"iPhone5" : @"iPhone";
+    
+    // LandscapeLeft, should always return expectedImageName
+    currentOrientation = UIInterfaceOrientationLandscapeLeft;
+    name = [self.plugin getImageName:currentOrientation delegate:delegate device:device];
+    expectedImageName = [expectedImageNameDictionary objectForKey:@"landscapeLeft"];
+    XCTAssertTrue([expectedImageName isEqualToString:name], @"%@ - %@ failed (%@)", @"Landscape", deviceName, name);
+    
+    // LandscapeRight - should always return expectedImageName
+    currentOrientation = UIInterfaceOrientationLandscapeRight;
+    name = [self.plugin getImageName:currentOrientation delegate:delegate device:device];
+    expectedImageName = [expectedImageNameDictionary objectForKey:@"landscapeRight"];
+    XCTAssertTrue([expectedImageName isEqualToString:name], @"%@ - %@ failed (%@)", @"Landscape", deviceName, name);
+    
+    // Portrait - should always return expectedImageName
+    currentOrientation = UIInterfaceOrientationPortrait;
+    name = [self.plugin getImageName:currentOrientation delegate:delegate device:device];
+    expectedImageName = [expectedImageNameDictionary objectForKey:@"portrait"];
+    XCTAssertTrue([expectedImageName isEqualToString:name], @"%@ - %@ failed (%@)", @"Portrait", deviceName, name);
+    
+    // PortraitUpsideDown - should always return expectedImageName
+    currentOrientation = UIInterfaceOrientationPortraitUpsideDown;
+    name = [self.plugin getImageName:currentOrientation delegate:delegate device:device];
+    expectedImageName = [expectedImageNameDictionary objectForKey:@"portraitUpsideDown"];
+    XCTAssertTrue([expectedImageName isEqualToString:name], @"%@ - %@ failed (%@)", @"Portrait", deviceName, name);
+}
+
+- (void)testiPadOrientation {
+    
+    CDV_iOSDevice device = CDV_iOSDeviceZero;
+    device.iPad = YES;
+    
+    // One orientation
+    
+    PortraitOnly* delegate = [[PortraitOnly alloc] init];
+    [self orientationHelper:delegate expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-Portrait",
+                                                                    @"landscapeRight" : @"Default-Portrait",
+                                                                    @"portrait" : @"Default-Portrait",
+                                                                    @"portraitUpsideDown" : @"Default-Portrait"
+                                                                    }
+                     device:device];
+    
+    PortraitUpsideDownOnly* delegate2 = [[PortraitUpsideDownOnly alloc] init];
+    [self orientationHelper:delegate2 expectedImageNameDictionary:@{
+                                                                   @"landscapeLeft" : @"Default-Portrait",
+                                                                   @"landscapeRight" : @"Default-Portrait",
+                                                                   @"portrait" : @"Default-Portrait",
+                                                                   @"portraitUpsideDown" : @"Default-Portrait"
+                                                                   }
+                     device:device];
+    
+    LandscapeLeftOnly* delegate3 = [[LandscapeLeftOnly alloc] init];
+    [self orientationHelper:delegate3 expectedImageNameDictionary:@{
+                                                                   @"landscapeLeft" : @"Default-Landscape",
+                                                                   @"landscapeRight" : @"Default-Landscape",
+                                                                   @"portrait" : @"Default-Landscape",
+                                                                   @"portraitUpsideDown" : @"Default-Landscape"
+                                                                   }
+                     device:device];
+    
+    LandscapeRightOnly* delegate4 = [[LandscapeRightOnly alloc] init];
+    [self orientationHelper:delegate4 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-Landscape",
+                                                                    @"landscapeRight" : @"Default-Landscape",
+                                                                    @"portrait" : @"Default-Landscape",
+                                                                    @"portraitUpsideDown" : @"Default-Landscape"
+                                                                    }
+                     device:device];
+
+    // All Portrait
+
+    AllPortraitOnly* delegate5 = [[AllPortraitOnly alloc] init];
+    [self orientationHelper:delegate5 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-Portrait",
+                                                                    @"landscapeRight" : @"Default-Portrait",
+                                                                    @"portrait" : @"Default-Portrait",
+                                                                    @"portraitUpsideDown" : @"Default-Portrait"
+                                                                    }
+                     device:device];
+
+    // All Landscape
+    
+    AllLandscapeOnly* delegate6 = [[AllLandscapeOnly alloc] init];
+    [self orientationHelper:delegate6 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-Landscape",
+                                                                    @"landscapeRight" : @"Default-Landscape",
+                                                                    @"portrait" : @"Default-Landscape",
+                                                                    @"portraitUpsideDown" : @"Default-Landscape"
+                                                                    }
+                     device:device];
+    
+    
+    // All orientations
+    
+    AllOrientations* delegate7 = [[AllOrientations alloc] init];
+    [self orientationHelper:delegate7 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-Landscape",
+                                                                    @"landscapeRight" : @"Default-Landscape",
+                                                                    @"portrait" : @"Default-Portrait",
+                                                                    @"portraitUpsideDown" : @"Default-Portrait"
+                                                                    }
+                     device:device];
+
+    // Portrait and Landscape Left
+    
+    PortraitAndLandscapeLeftOnly* delegate8 = [[PortraitAndLandscapeLeftOnly alloc] init];
+    [self orientationHelper:delegate8 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-Landscape",
+                                                                    @"landscapeRight" : @"Default-Landscape",
+                                                                    @"portrait" : @"Default-Portrait",
+                                                                    @"portraitUpsideDown" : @"Default-Portrait"
+                                                                    }
+                     device:device];
+
+    // Portrait and Landscape Right
+    
+    PortraitAndLandscapeRightOnly* delegate9 = [[PortraitAndLandscapeRightOnly alloc] init];
+    [self orientationHelper:delegate9 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-Landscape",
+                                                                    @"landscapeRight" : @"Default-Landscape",
+                                                                    @"portrait" : @"Default-Portrait",
+                                                                    @"portraitUpsideDown" : @"Default-Portrait"
+                                                                    }
+                     device:device];
+
+    // PortraitUpsideDown and Landscape Left
+    
+    PortraitUpsideDownAndLandscapeLeftOnly* delegate10 = [[PortraitUpsideDownAndLandscapeLeftOnly alloc] init];
+    [self orientationHelper:delegate10 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-Landscape",
+                                                                    @"landscapeRight" : @"Default-Landscape",
+                                                                    @"portrait" : @"Default-Portrait",
+                                                                    @"portraitUpsideDown" : @"Default-Portrait"
+                                                                    }
+                     device:device];
+
+    // PortraitUpsideDown and Landscape Right
+    
+    PortraitUpsideDownAndLandscapeRightOnly* delegate11 = [[PortraitUpsideDownAndLandscapeRightOnly alloc] init];
+    [self orientationHelper:delegate11 expectedImageNameDictionary:@{
+                                                                     @"landscapeLeft" : @"Default-Landscape",
+                                                                     @"landscapeRight" : @"Default-Landscape",
+                                                                     @"portrait" : @"Default-Portrait",
+                                                                     @"portraitUpsideDown" : @"Default-Portrait"
+                                                                     }
+                     device:device];
+}
+
+- (void)testiPhoneOrientation {
+    
+    CDV_iOSDevice device = CDV_iOSDeviceZero;
+    device.iPhone = YES;
+    
+    // One orientation
+    
+    PortraitOnly* delegate = [[PortraitOnly alloc] init];
+    [self orientationHelper:delegate expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default",
+                                                                    @"landscapeRight" : @"Default",
+                                                                    @"portrait" : @"Default",
+                                                                    @"portraitUpsideDown" : @"Default"
+                                                                    }
+                     device:device];
+    
+    PortraitUpsideDownOnly* delegate2 = [[PortraitUpsideDownOnly alloc] init];
+    [self orientationHelper:delegate2 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default",
+                                                                    @"landscapeRight" : @"Default",
+                                                                    @"portrait" : @"Default",
+                                                                    @"portraitUpsideDown" : @"Default"
+                                                                    }
+                     device:device];
+    
+    LandscapeLeftOnly* delegate3 = [[LandscapeLeftOnly alloc] init];
+    [self orientationHelper:delegate3 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default",
+                                                                    @"landscapeRight" : @"Default",
+                                                                    @"portrait" : @"Default",
+                                                                    @"portraitUpsideDown" : @"Default"
+                                                                    }
+                     device:device];
+    
+    LandscapeRightOnly* delegate4 = [[LandscapeRightOnly alloc] init];
+    [self orientationHelper:delegate4 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default",
+                                                                    @"landscapeRight" : @"Default",
+                                                                    @"portrait" : @"Default",
+                                                                    @"portraitUpsideDown" : @"Default"
+                                                                    }
+                     device:device];
+    
+    // All Portrait
+    
+    AllPortraitOnly* delegate5 = [[AllPortraitOnly alloc] init];
+    [self orientationHelper:delegate5 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default",
+                                                                    @"landscapeRight" : @"Default",
+                                                                    @"portrait" : @"Default",
+                                                                    @"portraitUpsideDown" : @"Default"
+                                                                    }
+                     device:device];
+    
+    // All Landscape
+    
+    AllLandscapeOnly* delegate6 = [[AllLandscapeOnly alloc] init];
+    [self orientationHelper:delegate6 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default",
+                                                                    @"landscapeRight" : @"Default",
+                                                                    @"portrait" : @"Default",
+                                                                    @"portraitUpsideDown" : @"Default"
+                                                                    }
+                     device:device];
+    
+    
+    // All orientations
+    
+    AllOrientations* delegate7 = [[AllOrientations alloc] init];
+    [self orientationHelper:delegate7 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default",
+                                                                    @"landscapeRight" : @"Default",
+                                                                    @"portrait" : @"Default",
+                                                                    @"portraitUpsideDown" : @"Default"
+                                                                    }
+                     device:device];
+    
+    // Portrait and Landscape Left
+    
+    PortraitAndLandscapeLeftOnly* delegate8 = [[PortraitAndLandscapeLeftOnly alloc] init];
+    [self orientationHelper:delegate8 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default",
+                                                                    @"landscapeRight" : @"Default",
+                                                                    @"portrait" : @"Default",
+                                                                    @"portraitUpsideDown" : @"Default"
+                                                                    }
+                     device:device];
+    
+    // Portrait and Landscape Right
+    
+    PortraitAndLandscapeRightOnly* delegate9 = [[PortraitAndLandscapeRightOnly alloc] init];
+    [self orientationHelper:delegate9 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default",
+                                                                    @"landscapeRight" : @"Default",
+                                                                    @"portrait" : @"Default",
+                                                                    @"portraitUpsideDown" : @"Default"
+                                                                    }
+                     device:device];
+    
+    // PortraitUpsideDown and Landscape Left
+    
+    PortraitUpsideDownAndLandscapeLeftOnly* delegate10 = [[PortraitUpsideDownAndLandscapeLeftOnly alloc] init];
+    [self orientationHelper:delegate10 expectedImageNameDictionary:@{
+                                                                     @"landscapeLeft" : @"Default",
+                                                                     @"landscapeRight" : @"Default",
+                                                                     @"portrait" : @"Default",
+                                                                     @"portraitUpsideDown" : @"Default"
+                                                                     }
+                     device:device];
+    
+    // PortraitUpsideDown and Landscape Right
+    
+    PortraitUpsideDownAndLandscapeRightOnly* delegate11 = [[PortraitUpsideDownAndLandscapeRightOnly alloc] init];
+    [self orientationHelper:delegate11 expectedImageNameDictionary:@{
+                                                                     @"landscapeLeft" : @"Default",
+                                                                     @"landscapeRight" : @"Default",
+                                                                     @"portrait" : @"Default",
+                                                                     @"portraitUpsideDown" : @"Default"
+                                                                     }
+                     device:device];
+}
+
+- (void)testiPhone5Orientation {
+    
+    CDV_iOSDevice device = CDV_iOSDeviceZero;
+    device.iPhone = YES;
+    device.iPhone5 = YES;
+    
+    // One orientation
+    
+    PortraitOnly* delegate = [[PortraitOnly alloc] init];
+    [self orientationHelper:delegate expectedImageNameDictionary:@{
+                                                                   @"landscapeLeft" : @"Default-568h",
+                                                                   @"landscapeRight" : @"Default-568h",
+                                                                   @"portrait" : @"Default-568h",
+                                                                   @"portraitUpsideDown" : @"Default-568h"
+                                                                   }
+                     device:device];
+    
+    PortraitUpsideDownOnly* delegate2 = [[PortraitUpsideDownOnly alloc] init];
+    [self orientationHelper:delegate2 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-568h",
+                                                                    @"landscapeRight" : @"Default-568h",
+                                                                    @"portrait" : @"Default-568h",
+                                                                    @"portraitUpsideDown" : @"Default-568h"
+                                                                    }
+                     device:device];
+    
+    LandscapeLeftOnly* delegate3 = [[LandscapeLeftOnly alloc] init];
+    [self orientationHelper:delegate3 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-568h",
+                                                                    @"landscapeRight" : @"Default-568h",
+                                                                    @"portrait" : @"Default-568h",
+                                                                    @"portraitUpsideDown" : @"Default-568h"
+                                                                    }
+                     device:device];
+    
+    LandscapeRightOnly* delegate4 = [[LandscapeRightOnly alloc] init];
+    [self orientationHelper:delegate4 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-568h",
+                                                                    @"landscapeRight" : @"Default-568h",
+                                                                    @"portrait" : @"Default-568h",
+                                                                    @"portraitUpsideDown" : @"Default-568h"
+                                                                    }
+                     device:device];
+    
+    // All Portrait
+    
+    AllPortraitOnly* delegate5 = [[AllPortraitOnly alloc] init];
+    [self orientationHelper:delegate5 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-568h",
+                                                                    @"landscapeRight" : @"Default-568h",
+                                                                    @"portrait" : @"Default-568h",
+                                                                    @"portraitUpsideDown" : @"Default-568h"
+                                                                    }
+                     device:device];
+    
+    // All Landscape
+    
+    AllLandscapeOnly* delegate6 = [[AllLandscapeOnly alloc] init];
+    [self orientationHelper:delegate6 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-568h",
+                                                                    @"landscapeRight" : @"Default-568h",
+                                                                    @"portrait" : @"Default-568h",
+                                                                    @"portraitUpsideDown" : @"Default-568h"
+                                                                    }
+                     device:device];
+    
+    
+    // All orientations
+    
+    AllOrientations* delegate7 = [[AllOrientations alloc] init];
+    [self orientationHelper:delegate7 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-568h",
+                                                                    @"landscapeRight" : @"Default-568h",
+                                                                    @"portrait" : @"Default-568h",
+                                                                    @"portraitUpsideDown" : @"Default-568h"
+                                                                    }
+                     device:device];
+    
+    // Portrait and Landscape Left
+    
+    PortraitAndLandscapeLeftOnly* delegate8 = [[PortraitAndLandscapeLeftOnly alloc] init];
+    [self orientationHelper:delegate8 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-568h",
+                                                                    @"landscapeRight" : @"Default-568h",
+                                                                    @"portrait" : @"Default-568h",
+                                                                    @"portraitUpsideDown" : @"Default-568h"
+                                                                    }
+                     device:device];
+    
+    // Portrait and Landscape Right
+    
+    PortraitAndLandscapeRightOnly* delegate9 = [[PortraitAndLandscapeRightOnly alloc] init];
+    [self orientationHelper:delegate9 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-568h",
+                                                                    @"landscapeRight" : @"Default-568h",
+                                                                    @"portrait" : @"Default-568h",
+                                                                    @"portraitUpsideDown" : @"Default-568h"
+                                                                    }
+                     device:device];
+    
+    // PortraitUpsideDown and Landscape Left
+    
+    PortraitUpsideDownAndLandscapeLeftOnly* delegate10 = [[PortraitUpsideDownAndLandscapeLeftOnly alloc] init];
+    [self orientationHelper:delegate10 expectedImageNameDictionary:@{
+                                                                     @"landscapeLeft" : @"Default-568h",
+                                                                     @"landscapeRight" : @"Default-568h",
+                                                                     @"portrait" : @"Default-568h",
+                                                                     @"portraitUpsideDown" : @"Default-568h"
+                                                                     }
+                     device:device];
+    
+    // PortraitUpsideDown and Landscape Right
+    
+    PortraitUpsideDownAndLandscapeRightOnly* delegate11 = [[PortraitUpsideDownAndLandscapeRightOnly alloc] init];
+    [self orientationHelper:delegate11 expectedImageNameDictionary:@{
+                                                                     @"landscapeLeft" : @"Default-568h",
+                                                                     @"landscapeRight" : @"Default-568h",
+                                                                     @"portrait" : @"Default-568h",
+                                                                     @"portraitUpsideDown" : @"Default-568h"
+                                                                     }
+                     device:device];
+}
+
+- (void)testiPhone6Orientation {
+    
+    CDV_iOSDevice device = CDV_iOSDeviceZero;
+    device.iPhone = YES;
+    device.iPhone6 = YES;
+    
+    // One orientation
+    
+    PortraitOnly* delegate = [[PortraitOnly alloc] init];
+    [self orientationHelper:delegate expectedImageNameDictionary:@{
+                                                                   @"landscapeLeft" : @"Default-667h",
+                                                                   @"landscapeRight" : @"Default-667h",
+                                                                   @"portrait" : @"Default-667h",
+                                                                   @"portraitUpsideDown" : @"Default-667h"
+                                                                   }
+                     device:device];
+    
+    PortraitUpsideDownOnly* delegate2 = [[PortraitUpsideDownOnly alloc] init];
+    [self orientationHelper:delegate2 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-667h",
+                                                                    @"landscapeRight" : @"Default-667h",
+                                                                    @"portrait" : @"Default-667h",
+                                                                    @"portraitUpsideDown" : @"Default-667h"
+                                                                    }
+                     device:device];
+    
+    LandscapeLeftOnly* delegate3 = [[LandscapeLeftOnly alloc] init];
+    [self orientationHelper:delegate3 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-667h",
+                                                                    @"landscapeRight" : @"Default-667h",
+                                                                    @"portrait" : @"Default-667h",
+                                                                    @"portraitUpsideDown" : @"Default-667h"
+                                                                    }
+                     device:device];
+    
+    LandscapeRightOnly* delegate4 = [[LandscapeRightOnly alloc] init];
+    [self orientationHelper:delegate4 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-667h",
+                                                                    @"landscapeRight" : @"Default-667h",
+                                                                    @"portrait" : @"Default-667h",
+                                                                    @"portraitUpsideDown" : @"Default-667h"
+                                                                    }
+                     device:device];
+    
+    // All Portrait
+    
+    AllPortraitOnly* delegate5 = [[AllPortraitOnly alloc] init];
+    [self orientationHelper:delegate5 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-667h",
+                                                                    @"landscapeRight" : @"Default-667h",
+                                                                    @"portrait" : @"Default-667h",
+                                                                    @"portraitUpsideDown" : @"Default-667h"
+                                                                    }
+                     device:device];
+    
+    // All Landscape
+    
+    AllLandscapeOnly* delegate6 = [[AllLandscapeOnly alloc] init];
+    [self orientationHelper:delegate6 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-667h",
+                                                                    @"landscapeRight" : @"Default-667h",
+                                                                    @"portrait" : @"Default-667h",
+                                                                    @"portraitUpsideDown" : @"Default-667h"
+                                                                    }
+                     device:device];
+    
+    
+    // All orientations
+    
+    AllOrientations* delegate7 = [[AllOrientations alloc] init];
+    [self orientationHelper:delegate7 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-667h",
+                                                                    @"landscapeRight" : @"Default-667h",
+                                                                    @"portrait" : @"Default-667h",
+                                                                    @"portraitUpsideDown" : @"Default-667h"
+                                                                    }
+                     device:device];
+    
+    // Portrait and Landscape Left
+    
+    PortraitAndLandscapeLeftOnly* delegate8 = [[PortraitAndLandscapeLeftOnly alloc] init];
+    [self orientationHelper:delegate8 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-667h",
+                                                                    @"landscapeRight" : @"Default-667h",
+                                                                    @"portrait" : @"Default-667h",
+                                                                    @"portraitUpsideDown" : @"Default-667h"
+                                                                    }
+                     device:device];
+    
+    // Portrait and Landscape Right
+    
+    PortraitAndLandscapeRightOnly* delegate9 = [[PortraitAndLandscapeRightOnly alloc] init];
+    [self orientationHelper:delegate9 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-667h",
+                                                                    @"landscapeRight" : @"Default-667h",
+                                                                    @"portrait" : @"Default-667h",
+                                                                    @"portraitUpsideDown" : @"Default-667h"
+                                                                    }
+                     device:device];
+    
+    // PortraitUpsideDown and Landscape Left
+    
+    PortraitUpsideDownAndLandscapeLeftOnly* delegate10 = [[PortraitUpsideDownAndLandscapeLeftOnly alloc] init];
+    [self orientationHelper:delegate10 expectedImageNameDictionary:@{
+                                                                     @"landscapeLeft" : @"Default-667h",
+                                                                     @"landscapeRight" : @"Default-667h",
+                                                                     @"portrait" : @"Default-667h",
+                                                                     @"portraitUpsideDown" : @"Default-667h"
+                                                                     }
+                     device:device];
+    
+    // PortraitUpsideDown and Landscape Right
+    
+    PortraitUpsideDownAndLandscapeRightOnly* delegate11 = [[PortraitUpsideDownAndLandscapeRightOnly alloc] init];
+    [self orientationHelper:delegate11 expectedImageNameDictionary:@{
+                                                                     @"landscapeLeft" : @"Default-667h",
+                                                                     @"landscapeRight" : @"Default-667h",
+                                                                     @"portrait" : @"Default-667h",
+                                                                     @"portraitUpsideDown" : @"Default-667h"
+                                                                     }
+                     device:device];
+}
+
+- (void)testiPhone6PlusOrientation {
+    
+    CDV_iOSDevice device = CDV_iOSDeviceZero;
+    device.iPhone = YES;
+    device.iPhone6Plus = YES;
+    
+    // One orientation
+    
+    PortraitOnly* delegate = [[PortraitOnly alloc] init];
+    [self orientationHelper:delegate expectedImageNameDictionary:@{
+                                                                   @"landscapeLeft" : @"Default-736h",
+                                                                   @"landscapeRight" : @"Default-736h",
+                                                                   @"portrait" : @"Default-736h",
+                                                                   @"portraitUpsideDown" : @"Default-736h"
+                                                                   }
+                     device:device];
+    
+    PortraitUpsideDownOnly* delegate2 = [[PortraitUpsideDownOnly alloc] init];
+    [self orientationHelper:delegate2 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-736h",
+                                                                    @"landscapeRight" : @"Default-736h",
+                                                                    @"portrait" : @"Default-736h",
+                                                                    @"portraitUpsideDown" : @"Default-736h"
+                                                                    }
+                     device:device];
+    
+    LandscapeLeftOnly* delegate3 = [[LandscapeLeftOnly alloc] init];
+    [self orientationHelper:delegate3 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-Landscape-736h",
+                                                                    @"landscapeRight" : @"Default-Landscape-736h",
+                                                                    @"portrait" : @"Default-Landscape-736h",
+                                                                    @"portraitUpsideDown" : @"Default-Landscape-736h"
+                                                                    }
+                     device:device];
+    
+    LandscapeRightOnly* delegate4 = [[LandscapeRightOnly alloc] init];
+    [self orientationHelper:delegate4 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-Landscape-736h",
+                                                                    @"landscapeRight" : @"Default-Landscape-736h",
+                                                                    @"portrait" : @"Default-Landscape-736h",
+                                                                    @"portraitUpsideDown" : @"Default-Landscape-736h"
+                                                                    }
+                     device:device];
+    
+    // All Portrait
+    
+    AllPortraitOnly* delegate5 = [[AllPortraitOnly alloc] init];
+    [self orientationHelper:delegate5 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-736h",
+                                                                    @"landscapeRight" : @"Default-736h",
+                                                                    @"portrait" : @"Default-736h",
+                                                                    @"portraitUpsideDown" : @"Default-736h"
+                                                                    }
+                     device:device];
+    
+    // All Landscape
+    
+    AllLandscapeOnly* delegate6 = [[AllLandscapeOnly alloc] init];
+    [self orientationHelper:delegate6 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-Landscape-736h",
+                                                                    @"landscapeRight" : @"Default-Landscape-736h",
+                                                                    @"portrait" : @"Default-Landscape-736h",
+                                                                    @"portraitUpsideDown" : @"Default-Landscape-736h"
+                                                                    }
+                     device:device];
+    
+    
+    // All orientations
+    
+    AllOrientations* delegate7 = [[AllOrientations alloc] init];
+    [self orientationHelper:delegate7 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-Landscape-736h",
+                                                                    @"landscapeRight" : @"Default-Landscape-736h",
+                                                                    @"portrait" : @"Default-736h",
+                                                                    @"portraitUpsideDown" : @"Default-736h"
+                                                                    }
+                     device:device];
+    
+    // Portrait and Landscape Left
+    
+    PortraitAndLandscapeLeftOnly* delegate8 = [[PortraitAndLandscapeLeftOnly alloc] init];
+    [self orientationHelper:delegate8 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-Landscape-736h",
+                                                                    @"landscapeRight" : @"Default-Landscape-736h",
+                                                                    @"portrait" : @"Default-736h",
+                                                                    @"portraitUpsideDown" : @"Default-736h"
+                                                                    }
+                     device:device];
+    
+    // Portrait and Landscape Right
+    
+    PortraitAndLandscapeRightOnly* delegate9 = [[PortraitAndLandscapeRightOnly alloc] init];
+    [self orientationHelper:delegate9 expectedImageNameDictionary:@{
+                                                                    @"landscapeLeft" : @"Default-Landscape-736h",
+                                                                    @"landscapeRight" : @"Default-Landscape-736h",
+                                                                    @"portrait" : @"Default-736h",
+                                                                    @"portraitUpsideDown" : @"Default-736h"
+                                                                    }
+                     device:device];
+    
+    // PortraitUpsideDown and Landscape Left
+    
+    PortraitUpsideDownAndLandscapeLeftOnly* delegate10 = [[PortraitUpsideDownAndLandscapeLeftOnly alloc] init];
+    [self orientationHelper:delegate10 expectedImageNameDictionary:@{
+                                                                     @"landscapeLeft" : @"Default-Landscape-736h",
+                                                                     @"landscapeRight" : @"Default-Landscape-736h",
+                                                                     @"portrait" : @"Default-736h",
+                                                                     @"portraitUpsideDown" : @"Default-736h"
+                                                                     }
+                     device:device];
+    
+    // PortraitUpsideDown and Landscape Right
+    
+    PortraitUpsideDownAndLandscapeRightOnly* delegate11 = [[PortraitUpsideDownAndLandscapeRightOnly alloc] init];
+    [self orientationHelper:delegate11 expectedImageNameDictionary:@{
+                                                                     @"landscapeLeft" : @"Default-Landscape-736h",
+                                                                     @"landscapeRight" : @"Default-Landscape-736h",
+                                                                     @"portrait" : @"Default-736h",
+                                                                     @"portraitUpsideDown" : @"Default-736h"
+                                                                     }
+                     device:device];
+}
+
+
+
+@end

+ 57 - 0
wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest/CDVSplashScreenLibTests/ImageNameTestDelegates.h

xqd
@@ -0,0 +1,57 @@
+/*
+ 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 <Foundation/Foundation.h>
+#import <Cordova/CDVScreenOrientationDelegate.h>
+
+@interface PortraitOnly : NSObject <CDVScreenOrientationDelegate>
+@end
+
+@interface PortraitUpsideDownOnly : NSObject <CDVScreenOrientationDelegate>
+@end
+
+@interface AllPortraitOnly : NSObject <CDVScreenOrientationDelegate>
+@end
+
+
+@interface LandscapeLeftOnly : NSObject <CDVScreenOrientationDelegate>
+@end
+
+@interface LandscapeRightOnly : NSObject <CDVScreenOrientationDelegate>
+@end
+
+@interface AllLandscapeOnly : NSObject <CDVScreenOrientationDelegate>
+@end
+
+
+@interface AllOrientations : NSObject <CDVScreenOrientationDelegate>
+@end
+
+@interface PortraitAndLandscapeLeftOnly : NSObject <CDVScreenOrientationDelegate>
+@end
+
+@interface PortraitAndLandscapeRightOnly : NSObject <CDVScreenOrientationDelegate>
+@end
+
+@interface PortraitUpsideDownAndLandscapeLeftOnly : NSObject <CDVScreenOrientationDelegate>
+@end
+
+@interface PortraitUpsideDownAndLandscapeRightOnly : NSObject <CDVScreenOrientationDelegate>
+@end
+

+ 200 - 0
wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest/CDVSplashScreenLibTests/ImageNameTestDelegates.m

xqd
@@ -0,0 +1,200 @@
+/*
+ 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 <UIKit/UIKit.h>
+#import "ImageNameTestDelegates.h"
+
+@implementation PortraitOnly
+
+- (NSUInteger)supportedInterfaceOrientations {
+    return UIInterfaceOrientationMaskPortrait;
+}
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+    return [self supportedInterfaceOrientations] & (1 << interfaceOrientation) ;
+}
+
+- (BOOL)shouldAutorotate {
+    return YES;
+}
+
+@end
+
+@implementation PortraitUpsideDownOnly
+
+- (NSUInteger)supportedInterfaceOrientations {
+    return UIInterfaceOrientationMaskPortraitUpsideDown;
+}
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+    return [self supportedInterfaceOrientations] & (1 << interfaceOrientation) ;
+}
+
+- (BOOL)shouldAutorotate {
+    return YES;
+}
+
+@end
+
+@implementation AllPortraitOnly
+
+- (NSUInteger)supportedInterfaceOrientations {
+    return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown;
+}
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+    return [self supportedInterfaceOrientations] & (1 << interfaceOrientation) ;
+}
+
+- (BOOL)shouldAutorotate {
+    return YES;
+}
+
+@end
+
+
+@implementation LandscapeLeftOnly
+
+- (NSUInteger)supportedInterfaceOrientations {
+    return UIInterfaceOrientationMaskLandscapeLeft;
+}
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+    return [self supportedInterfaceOrientations] & (1 << interfaceOrientation) ;
+}
+
+- (BOOL)shouldAutorotate {
+    return YES;
+}
+
+@end
+
+@implementation LandscapeRightOnly
+
+- (NSUInteger)supportedInterfaceOrientations {
+    return UIInterfaceOrientationMaskLandscapeRight;
+}
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+    return [self supportedInterfaceOrientations] & (1 << interfaceOrientation) ;
+}
+
+- (BOOL)shouldAutorotate {
+    return YES;
+}
+
+@end
+
+@implementation AllLandscapeOnly
+
+- (NSUInteger)supportedInterfaceOrientations {
+    return UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;
+}
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+    return [self supportedInterfaceOrientations] & (1 << interfaceOrientation) ;
+}
+
+- (BOOL)shouldAutorotate {
+    return YES;
+}
+
+@end
+
+
+@implementation AllOrientations
+
+- (NSUInteger)supportedInterfaceOrientations {
+    return UIInterfaceOrientationMaskAll;
+}
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+    return [self supportedInterfaceOrientations] & (1 << interfaceOrientation) ;
+}
+
+- (BOOL)shouldAutorotate {
+    return YES;
+}
+
+@end
+
+@implementation PortraitAndLandscapeLeftOnly
+
+- (NSUInteger)supportedInterfaceOrientations {
+    return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft;
+}
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+    return [self supportedInterfaceOrientations] & (1 << interfaceOrientation) ;
+}
+
+- (BOOL)shouldAutorotate {
+    return YES;
+}
+
+@end
+
+@implementation PortraitAndLandscapeRightOnly
+
+- (NSUInteger)supportedInterfaceOrientations {
+    return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeRight;
+}
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+    return [self supportedInterfaceOrientations] & (1 << interfaceOrientation) ;
+}
+
+- (BOOL)shouldAutorotate {
+    return YES;
+}
+
+@end
+
+@implementation PortraitUpsideDownAndLandscapeLeftOnly
+
+- (NSUInteger)supportedInterfaceOrientations {
+    return UIInterfaceOrientationMaskPortraitUpsideDown | UIInterfaceOrientationMaskLandscapeLeft;
+}
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+    return [self supportedInterfaceOrientations] & (1 << interfaceOrientation) ;
+}
+
+- (BOOL)shouldAutorotate {
+    return YES;
+}
+
+@end
+
+@implementation PortraitUpsideDownAndLandscapeRightOnly
+
+- (NSUInteger)supportedInterfaceOrientations {
+    return UIInterfaceOrientationMaskPortraitUpsideDown | UIInterfaceOrientationMaskLandscapeRight;
+}
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+    return [self supportedInterfaceOrientations] & (1 << interfaceOrientation) ;
+}
+
+- (BOOL)shouldAutorotate {
+    return YES;
+}
+
+@end
+

+ 44 - 0
wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest/CDVSplashScreenLibTests/Info.plist

xqd
@@ -0,0 +1,44 @@
+<?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>
+	<string>en</string>
+	<key>CFBundleExecutable</key>
+	<string>$(EXECUTABLE_NAME)</string>
+	<key>CFBundleIdentifier</key>
+	<string>org.apache.cordova.$(PRODUCT_NAME:rfc1034identifier)</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>$(PRODUCT_NAME)</string>
+	<key>CFBundlePackageType</key>
+	<string>BNDL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+</dict>
+</plist>

+ 505 - 0
wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/project.pbxproj

xqd
@@ -0,0 +1,505 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		7E9F51AB19DA10AE00DA31AC /* CDVSplashScreen.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E9F51A919DA10AE00DA31AC /* CDVSplashScreen.m */; };
+		7E9F51B119DA114400DA31AC /* ImageNameTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E9F51B019DA114400DA31AC /* ImageNameTest.m */; };
+		7E9F51B319DA116500DA31AC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E9F51B219DA116500DA31AC /* Foundation.framework */; };
+		7E9F51B519DA127E00DA31AC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E9F51B419DA127E00DA31AC /* UIKit.framework */; };
+		7E9F51B819DA14FD00DA31AC /* ImageNameTestDelegates.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E9F51B719DA14FD00DA31AC /* ImageNameTestDelegates.m */; };
+		7E9F51B919DA1B1600DA31AC /* libCDVSplashScreenLib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E9F519519DA102000DA31AC /* libCDVSplashScreenLib.a */; };
+		7E9F51BA19DA1B2000DA31AC /* libCordova.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E9F519019DA0F8300DA31AC /* libCordova.a */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+		7E9F518F19DA0F8300DA31AC /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 7E9F518B19DA0F8300DA31AC /* CordovaLib.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = 68A32D7114102E1C006B237C;
+			remoteInfo = CordovaLib;
+		};
+		7E9F51AC19DA10DE00DA31AC /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 7E9F517219DA09CE00DA31AC /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 7E9F519419DA102000DA31AC;
+			remoteInfo = CDVSplashScreenLib;
+		};
+		7E9F51AE19DA10E100DA31AC /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 7E9F518B19DA0F8300DA31AC /* CordovaLib.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC07D0554694100DB518D;
+			remoteInfo = CordovaLib;
+		};
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		7E9F519319DA102000DA31AC /* CopyFiles */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "include/$(PRODUCT_NAME)";
+			dstSubfolderSpec = 16;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+		7E9F518B19DA0F8300DA31AC /* CordovaLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CordovaLib.xcodeproj; path = "../node_modules/cordova-ios/CordovaLib/CordovaLib.xcodeproj"; sourceTree = "<group>"; };
+		7E9F519519DA102000DA31AC /* libCDVSplashScreenLib.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libCDVSplashScreenLib.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		7E9F519F19DA102000DA31AC /* CDVSplashScreenLibTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CDVSplashScreenLibTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+		7E9F51A219DA102000DA31AC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+		7E9F51A919DA10AE00DA31AC /* CDVSplashScreen.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CDVSplashScreen.m; path = ../../../src/ios/CDVSplashScreen.m; sourceTree = SOURCE_ROOT; };
+		7E9F51AA19DA10AE00DA31AC /* CDVSplashScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CDVSplashScreen.h; path = ../../../src/ios/CDVSplashScreen.h; sourceTree = SOURCE_ROOT; };
+		7E9F51B019DA114400DA31AC /* ImageNameTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ImageNameTest.m; sourceTree = "<group>"; };
+		7E9F51B219DA116500DA31AC /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
+		7E9F51B419DA127E00DA31AC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
+		7E9F51B619DA12C600DA31AC /* ImageNameTestDelegates.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageNameTestDelegates.h; sourceTree = "<group>"; };
+		7E9F51B719DA14FD00DA31AC /* ImageNameTestDelegates.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ImageNameTestDelegates.m; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		7E9F519219DA102000DA31AC /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		7E9F519C19DA102000DA31AC /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				7E9F51BA19DA1B2000DA31AC /* libCordova.a in Frameworks */,
+				7E9F51B919DA1B1600DA31AC /* libCDVSplashScreenLib.a in Frameworks */,
+				7E9F51B519DA127E00DA31AC /* UIKit.framework in Frameworks */,
+				7E9F51B319DA116500DA31AC /* Foundation.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		7E9F517119DA09CE00DA31AC = {
+			isa = PBXGroup;
+			children = (
+				7E9F51B419DA127E00DA31AC /* UIKit.framework */,
+				7E9F51B219DA116500DA31AC /* Foundation.framework */,
+				7E9F518B19DA0F8300DA31AC /* CordovaLib.xcodeproj */,
+				7E9F519619DA102000DA31AC /* CDVSplashScreenLib */,
+				7E9F51A019DA102000DA31AC /* CDVSplashScreenLibTests */,
+				7E9F517D19DA0A0A00DA31AC /* Products */,
+			);
+			sourceTree = "<group>";
+		};
+		7E9F517D19DA0A0A00DA31AC /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				7E9F519519DA102000DA31AC /* libCDVSplashScreenLib.a */,
+				7E9F519F19DA102000DA31AC /* CDVSplashScreenLibTests.xctest */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		7E9F518C19DA0F8300DA31AC /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				7E9F519019DA0F8300DA31AC /* libCordova.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		7E9F519619DA102000DA31AC /* CDVSplashScreenLib */ = {
+			isa = PBXGroup;
+			children = (
+				7E9F51A919DA10AE00DA31AC /* CDVSplashScreen.m */,
+				7E9F51AA19DA10AE00DA31AC /* CDVSplashScreen.h */,
+			);
+			path = CDVSplashScreenLib;
+			sourceTree = SOURCE_ROOT;
+		};
+		7E9F51A019DA102000DA31AC /* CDVSplashScreenLibTests */ = {
+			isa = PBXGroup;
+			children = (
+				7E9F51A119DA102000DA31AC /* Supporting Files */,
+				7E9F51B019DA114400DA31AC /* ImageNameTest.m */,
+				7E9F51B619DA12C600DA31AC /* ImageNameTestDelegates.h */,
+				7E9F51B719DA14FD00DA31AC /* ImageNameTestDelegates.m */,
+			);
+			path = CDVSplashScreenLibTests;
+			sourceTree = "<group>";
+		};
+		7E9F51A119DA102000DA31AC /* Supporting Files */ = {
+			isa = PBXGroup;
+			children = (
+				7E9F51A219DA102000DA31AC /* Info.plist */,
+			);
+			name = "Supporting Files";
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		7E9F519419DA102000DA31AC /* CDVSplashScreenLib */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 7E9F51A319DA102000DA31AC /* Build configuration list for PBXNativeTarget "CDVSplashScreenLib" */;
+			buildPhases = (
+				7E9F519119DA102000DA31AC /* Sources */,
+				7E9F519219DA102000DA31AC /* Frameworks */,
+				7E9F519319DA102000DA31AC /* CopyFiles */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = CDVSplashScreenLib;
+			productName = CDVSplashScreenLib;
+			productReference = 7E9F519519DA102000DA31AC /* libCDVSplashScreenLib.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+		7E9F519E19DA102000DA31AC /* CDVSplashScreenLibTests */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 7E9F51A619DA102000DA31AC /* Build configuration list for PBXNativeTarget "CDVSplashScreenLibTests" */;
+			buildPhases = (
+				7E9F519B19DA102000DA31AC /* Sources */,
+				7E9F519C19DA102000DA31AC /* Frameworks */,
+				7E9F519D19DA102000DA31AC /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				7E9F51AF19DA10E100DA31AC /* PBXTargetDependency */,
+				7E9F51AD19DA10DE00DA31AC /* PBXTargetDependency */,
+			);
+			name = CDVSplashScreenLibTests;
+			productName = CDVSplashScreenLibTests;
+			productReference = 7E9F519F19DA102000DA31AC /* CDVSplashScreenLibTests.xctest */;
+			productType = "com.apple.product-type.bundle.unit-test";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		7E9F517219DA09CE00DA31AC /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastUpgradeCheck = 0600;
+				TargetAttributes = {
+					7E9F519419DA102000DA31AC = {
+						CreatedOnToolsVersion = 6.0;
+					};
+					7E9F519E19DA102000DA31AC = {
+						CreatedOnToolsVersion = 6.0;
+					};
+				};
+			};
+			buildConfigurationList = 7E9F517519DA09CE00DA31AC /* Build configuration list for PBXProject "CDVSplashScreenTest" */;
+			compatibilityVersion = "Xcode 3.2";
+			developmentRegion = English;
+			hasScannedForEncodings = 0;
+			knownRegions = (
+				en,
+			);
+			mainGroup = 7E9F517119DA09CE00DA31AC;
+			productRefGroup = 7E9F517D19DA0A0A00DA31AC /* Products */;
+			projectDirPath = "";
+			projectReferences = (
+				{
+					ProductGroup = 7E9F518C19DA0F8300DA31AC /* Products */;
+					ProjectRef = 7E9F518B19DA0F8300DA31AC /* CordovaLib.xcodeproj */;
+				},
+			);
+			projectRoot = "";
+			targets = (
+				7E9F519419DA102000DA31AC /* CDVSplashScreenLib */,
+				7E9F519E19DA102000DA31AC /* CDVSplashScreenLibTests */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+		7E9F519019DA0F8300DA31AC /* libCordova.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libCordova.a;
+			remoteRef = 7E9F518F19DA0F8300DA31AC /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+		7E9F519D19DA102000DA31AC /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		7E9F519119DA102000DA31AC /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				7E9F51AB19DA10AE00DA31AC /* CDVSplashScreen.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		7E9F519B19DA102000DA31AC /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				7E9F51B119DA114400DA31AC /* ImageNameTest.m in Sources */,
+				7E9F51B819DA14FD00DA31AC /* ImageNameTestDelegates.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+		7E9F51AD19DA10DE00DA31AC /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = 7E9F519419DA102000DA31AC /* CDVSplashScreenLib */;
+			targetProxy = 7E9F51AC19DA10DE00DA31AC /* PBXContainerItemProxy */;
+		};
+		7E9F51AF19DA10E100DA31AC /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = CordovaLib;
+			targetProxy = 7E9F51AE19DA10E100DA31AC /* PBXContainerItemProxy */;
+		};
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+		7E9F517619DA09CE00DA31AC /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+			};
+			name = Debug;
+		};
+		7E9F517719DA09CE00DA31AC /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+			};
+			name = Release;
+		};
+		7E9F51A419DA102000DA31AC /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				COPY_PHASE_STRIP = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"DEBUG=1",
+					"$(inherited)",
+				);
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(TARGET_BUILD_DIR)/usr/local/lib/include\"",
+					"\"$(OBJROOT)/UninstalledProducts/include\"",
+					"\"$(BUILT_PRODUCTS_DIR)\"",
+				);
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+				MTL_ENABLE_DEBUG_INFO = YES;
+				ONLY_ACTIVE_ARCH = YES;
+				OTHER_LDFLAGS = "-ObjC";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SDKROOT = iphoneos;
+				SKIP_INSTALL = YES;
+			};
+			name = Debug;
+		};
+		7E9F51A519DA102000DA31AC /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				COPY_PHASE_STRIP = YES;
+				ENABLE_NS_ASSERTIONS = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(TARGET_BUILD_DIR)/usr/local/lib/include\"",
+					"\n\"$(OBJROOT)/UninstalledProducts/include\"\n\"$(BUILT_PRODUCTS_DIR)\"",
+				);
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+				MTL_ENABLE_DEBUG_INFO = NO;
+				OTHER_LDFLAGS = "-ObjC";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SDKROOT = iphoneos;
+				SKIP_INSTALL = YES;
+				VALIDATE_PRODUCT = YES;
+			};
+			name = Release;
+		};
+		7E9F51A719DA102000DA31AC /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				COPY_PHASE_STRIP = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(SDKROOT)/Developer/Library/Frameworks",
+					"$(inherited)",
+				);
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"DEBUG=1",
+					"$(inherited)",
+				);
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				INFOPLIST_FILE = CDVSplashScreenLibTests/Info.plist;
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+				MTL_ENABLE_DEBUG_INFO = YES;
+				ONLY_ACTIVE_ARCH = YES;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SDKROOT = iphoneos;
+			};
+			name = Debug;
+		};
+		7E9F51A819DA102000DA31AC /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				COPY_PHASE_STRIP = YES;
+				ENABLE_NS_ASSERTIONS = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(SDKROOT)/Developer/Library/Frameworks",
+					"$(inherited)",
+				);
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				INFOPLIST_FILE = CDVSplashScreenLibTests/Info.plist;
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+				MTL_ENABLE_DEBUG_INFO = NO;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SDKROOT = iphoneos;
+				VALIDATE_PRODUCT = YES;
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		7E9F517519DA09CE00DA31AC /* Build configuration list for PBXProject "CDVSplashScreenTest" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				7E9F517619DA09CE00DA31AC /* Debug */,
+				7E9F517719DA09CE00DA31AC /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		7E9F51A319DA102000DA31AC /* Build configuration list for PBXNativeTarget "CDVSplashScreenLib" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				7E9F51A419DA102000DA31AC /* Debug */,
+				7E9F51A519DA102000DA31AC /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		7E9F51A619DA102000DA31AC /* Build configuration list for PBXNativeTarget "CDVSplashScreenLibTests" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				7E9F51A719DA102000DA31AC /* Debug */,
+				7E9F51A819DA102000DA31AC /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 7E9F517219DA09CE00DA31AC /* Project object */;
+}

+ 7 - 0
wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata

xqd
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "self:CDVSplashScreenTest.xcodeproj">
+   </FileRef>
+</Workspace>

+ 41 - 0
wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/project.xcworkspace/xcshareddata/CDVSplashScreenTest.xccheckout

xqd
@@ -0,0 +1,41 @@
+<?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">
+<plist version="1.0">
+<dict>
+	<key>IDESourceControlProjectFavoriteDictionaryKey</key>
+	<false/>
+	<key>IDESourceControlProjectIdentifier</key>
+	<string>6BE9AD73-1B9F-4362-98D7-DC631BEC6185</string>
+	<key>IDESourceControlProjectName</key>
+	<string>CDVSplashScreenTest</string>
+	<key>IDESourceControlProjectOriginsDictionary</key>
+	<dict>
+		<key>BEF5A5D0FF64801E558286389440357A9233D7DB</key>
+		<string>https://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen.git</string>
+	</dict>
+	<key>IDESourceControlProjectPath</key>
+	<string>tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj</string>
+	<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
+	<dict>
+		<key>BEF5A5D0FF64801E558286389440357A9233D7DB</key>
+		<string>../../../../..</string>
+	</dict>
+	<key>IDESourceControlProjectURL</key>
+	<string>https://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen.git</string>
+	<key>IDESourceControlProjectVersion</key>
+	<integer>111</integer>
+	<key>IDESourceControlProjectWCCIdentifier</key>
+	<string>BEF5A5D0FF64801E558286389440357A9233D7DB</string>
+	<key>IDESourceControlProjectWCConfigurations</key>
+	<array>
+		<dict>
+			<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
+			<string>public.vcs.git</string>
+			<key>IDESourceControlWCCIdentifierKey</key>
+			<string>BEF5A5D0FF64801E558286389440357A9233D7DB</string>
+			<key>IDESourceControlWCCName</key>
+			<string>cordova-plugin-splashscreen</string>
+		</dict>
+	</array>
+</dict>
+</plist>

+ 77 - 0
wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/xcshareddata/xcschemes/CDVSplashScreenLib.xcscheme

xqd
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "0600"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "7E9F519419DA102000DA31AC"
+               BuildableName = "libCDVSplashScreenLib.a"
+               BlueprintName = "CDVSplashScreenLib"
+               ReferencedContainer = "container:CDVSplashScreenTest.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      buildConfiguration = "Debug">
+      <Testables>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Debug"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      allowLocationSimulation = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "7E9F519419DA102000DA31AC"
+            BuildableName = "libCDVSplashScreenLib.a"
+            BlueprintName = "CDVSplashScreenLib"
+            ReferencedContainer = "container:CDVSplashScreenTest.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Release"
+      debugDocumentVersioning = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "7E9F519419DA102000DA31AC"
+            BuildableName = "libCDVSplashScreenLib.a"
+            BlueprintName = "CDVSplashScreenLib"
+            ReferencedContainer = "container:CDVSplashScreenTest.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

+ 96 - 0
wl/plugins/cordova-plugin-splashscreen/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/xcshareddata/xcschemes/CDVSplashScreenLibTests.xcscheme

xqd
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "0600"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "NO"
+            buildForArchiving = "NO"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "7E9F519E19DA102000DA31AC"
+               BuildableName = "CDVSplashScreenLibTests.xctest"
+               BlueprintName = "CDVSplashScreenLibTests"
+               ReferencedContainer = "container:CDVSplashScreenTest.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      buildConfiguration = "Debug">
+      <Testables>
+         <TestableReference
+            skipped = "NO">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "7E9F519E19DA102000DA31AC"
+               BuildableName = "CDVSplashScreenLibTests.xctest"
+               BlueprintName = "CDVSplashScreenLibTests"
+               ReferencedContainer = "container:CDVSplashScreenTest.xcodeproj">
+            </BuildableReference>
+         </TestableReference>
+      </Testables>
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "7E9F519E19DA102000DA31AC"
+            BuildableName = "CDVSplashScreenLibTests.xctest"
+            BlueprintName = "CDVSplashScreenLibTests"
+            ReferencedContainer = "container:CDVSplashScreenTest.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+   </TestAction>
+   <LaunchAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Debug"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      allowLocationSimulation = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "7E9F519E19DA102000DA31AC"
+            BuildableName = "CDVSplashScreenLibTests.xctest"
+            BlueprintName = "CDVSplashScreenLibTests"
+            ReferencedContainer = "container:CDVSplashScreenTest.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Release"
+      debugDocumentVersioning = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "7E9F519E19DA102000DA31AC"
+            BuildableName = "CDVSplashScreenLibTests.xctest"
+            BlueprintName = "CDVSplashScreenLibTests"
+            ReferencedContainer = "container:CDVSplashScreenTest.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

+ 40 - 0
wl/plugins/cordova-plugin-splashscreen/tests/ios/README.md

xqd
@@ -0,0 +1,40 @@
+<!--
+# 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`.
+
+First install cordova-ios:
+
+    npm install
+
+... in the current folder.
+
+
+# Testing from Xcode
+
+1. Launch the `CDVSplashScreenTest.xcworkspace` file.
+2. Choose "CDVSplashScreenLibTests" from the scheme drop-down menu
+3. Click and hold on the `Play` button, and choose the `Wrench` icon to run the tests
+
+
+# Testing from the command line
+
+    npm test

+ 39 - 0
wl/plugins/cordova-plugin-splashscreen/tests/ios/doc/de/README.md

xqd
@@ -0,0 +1,39 @@
+<!--
+# 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 für CDVSplashScreen
+
+Sie müssen installieren `node.js` in `Cordova-Ios` zu ziehen.
+
+Installieren Sie Cordova-Ios zum ersten Mal:
+
+    npm install
+    
+
+... im aktuellen Ordner.
+
+# Testen von Xcode
+
+  1. Starten Sie die Datei `CDVSplashScreenTest.xcworkspace` .
+  2. Wählen Sie im Dropdown-Schema "CDVSplashScreenLibTests"
+  3. Klicken Sie und halten Sie auf den `Play` -Button und wählen Sie das `Schraubenschlüssel` -Symbol zum Ausführen der tests
+
+# Tests von der Befehlszeile aus
+
+    npm test

+ 39 - 0
wl/plugins/cordova-plugin-splashscreen/tests/ios/doc/es/README.md

xqd
@@ -0,0 +1,39 @@
+<!--
+# 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.
+-->
+
+# Pruebas de iOS para CDVSplashScreen
+
+Necesita instalar `node.js` en `Córdoba-ios`.
+
+Primero instalar cordova-ios:
+
+    npm install
+    
+
+... en la carpeta actual.
+
+# Prueba de Xcode
+
+  1. Iniciar el archivo `CDVSplashScreenTest.xcworkspace` .
+  2. Elija "CDVSplashScreenLibTests" en el menú de lista desplegable esquema
+  3. Haga clic y mantenga el botón de `Play` y elegir el icono de `llave inglesa` para ejecutar las pruebas
+
+# Pruebas desde la línea de comandos
+
+    npm test

+ 39 - 0
wl/plugins/cordova-plugin-splashscreen/tests/ios/doc/fr/README.md

xqd
@@ -0,0 +1,39 @@
+<!--
+# 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.
+-->
+
+# Tests d'iOS pour CDVSplashScreen
+
+Vous devez installer `node.js` à `cordova-ios`.
+
+Commencez par installer cordova-ios :
+
+    npm install
+    
+
+... dans le dossier actuel.
+
+# Tests de Xcode
+
+  1. Lancez le fichier `CDVSplashScreenTest.xcworkspace` .
+  2. Choisissez « CDVSplashScreenLibTests » dans le menu déroulant de régime
+  3. Cliquez et maintenez sur la touche `Play` et cliquez sur l'icône de `clé` pour exécuter les tests
+
+# Test de la ligne de commande
+
+    npm test

+ 39 - 0
wl/plugins/cordova-plugin-splashscreen/tests/ios/doc/it/README.md

xqd
@@ -0,0 +1,39 @@
+<!--
+# 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.
+-->
+
+# Test di iOS per CDVSplashScreen
+
+È necessario installare `node. js` per tirare in `cordova-ios`.
+
+In primo luogo installare cordova-ios:
+
+    npm install
+    
+
+... nella cartella corrente.
+
+# Test da Xcode
+
+  1. Lanciare il file `CDVSplashScreenTest.xcworkspace` .
+  2. Scegli "CDVSplashScreenLibTests" dal menu a discesa Schema
+  3. Fare clic e tenere premuto il pulsante `Play` e scegliere l'icona della `chiave inglese` per eseguire i test
+
+# Test dalla riga di comando
+
+    npm test

+ 39 - 0
wl/plugins/cordova-plugin-splashscreen/tests/ios/doc/ja/README.md

xqd
@@ -0,0 +1,39 @@
+<!--
+# 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.
+-->
+
+# CDVSplashScreen の iOS のテスト
+
+`Node.js` `コルドバ`ios をプルするをインストールする必要があります。.
+
+コルドバ ios をインストールします。
+
+    npm install
+    
+
+現在のフォルダーに.
+
+# Xcode からテスト
+
+  1. `CDVSplashScreenTest.xcworkspace`ファイルを起動します。
+  2. スキーム] ドロップダウン メニューから"CDVSplashScreenLibTests"を選択します。
+  3. クリックし、`再生`ボタンを押し、テストを実行する`レンチ`のアイコンを選択
+
+# コマンドラインからテスト
+
+    npm test

+ 39 - 0
wl/plugins/cordova-plugin-splashscreen/tests/ios/doc/ko/README.md

xqd
@@ -0,0 +1,39 @@
+<!--
+# 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.
+-->
+
+# CDVSplashScreen에 대 한 iOS 테스트
+
+`Node.js` `코르도바` ios에서를 설치 해야.
+
+코르도바-ios를 설치 하는 첫번째는:
+
+    npm install
+    
+
+현재 폴더에....
+
+# Xcode에서 테스트
+
+  1. `CDVSplashScreenTest.xcworkspace` 파일을 시작 합니다.
+  2. 구성표 드롭 다운 메뉴에서 "CDVSplashScreenLibTests"를 선택
+  3. 클릭 하 고 `재생` 버튼에는 테스트를 실행 하려면 `공구 모양` 아이콘을 선택
+
+# 명령줄에서 테스트
+
+    npm test

+ 39 - 0
wl/plugins/cordova-plugin-splashscreen/tests/ios/doc/pl/README.md

xqd
@@ -0,0 +1,39 @@
+<!--
+# 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 testy dla CDVSplashScreen
+
+Musisz zainstalować `node.js` ciągnąć w `cordova-ios`.
+
+Najpierw zainstalować cordova-ios:
+
+    npm install
+    
+
+... w folderze bieżącym.
+
+# Badania z Xcode
+
+  1. Uruchom plik `CDVSplashScreenTest.xcworkspace` .
+  2. Wybierz z menu rozwijanego systemu "CDVSplashScreenLibTests"
+  3. Kliknij i przytrzymaj przycisk `Play` i wybrać ikonę `klucz` do testów
+
+# Badania z wiersza polecenia
+
+    npm test

+ 39 - 0
wl/plugins/cordova-plugin-splashscreen/tests/ios/doc/zh/README.md

xqd
@@ -0,0 +1,39 @@
+<!--
+# 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.
+-->
+
+# CDVSplashScreen 的 iOS 測試
+
+您需要安裝`node.js`拉`科爾多瓦 ios`中.
+
+第一次安裝科爾多瓦 ios:
+
+    npm install
+    
+
+在當前資料夾中。
+
+# 從 Xcode 測試
+
+  1. 啟動`CDVSplashScreenTest.xcworkspace`檔。
+  2. 從方案下拉式功能表中選擇"CDVSplashScreenLibTests"
+  3. 按一下並堅持`播放`按鈕,然後選擇要運行的測試的`扳手`圖示
+
+# 從命令列測試
+
+    npm test

+ 13 - 0
wl/plugins/cordova-plugin-splashscreen/tests/ios/package.json

xqd
@@ -0,0 +1,13 @@
+{
+    "name": "cordova-plugin-splashscreen-test-ios",
+    "version": "1.0.0",
+    "description": "iOS Unit Tests for Splashscreen Plugin",
+    "author": "Apache Software Foundation",
+    "license": "Apache Version 2.0",
+    "dependencies": {
+        "cordova-ios": "*"
+    },
+    "scripts": {
+        "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'"
+    }
+}

+ 29 - 0
wl/plugins/cordova-plugin-splashscreen/tests/plugin.xml

xqd
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+
+<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
+    id="cordova-plugin-splashscreen-tests"
+    version="3.2.2">
+    <name>Cordova Splashscreen Plugin Tests</name>
+    <license>Apache 2.0</license>
+
+    <js-module src="tests.js" name="tests">
+    </js-module>
+</plugin>

+ 64 - 0
wl/plugins/cordova-plugin-splashscreen/tests/tests.js

xqd
@@ -0,0 +1,64 @@
+/*
+ *
+ * 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.
+ *
+*/
+
+/* 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 show method should exist", function () {
+            expect(navigator.splashscreen.show).toBeDefined();
+            expect(typeof navigator.splashscreen.show).toBe('function');
+        });
+
+        it("splashscreen.spec.3 hide method should exist", function () {
+            expect(navigator.splashscreen.hide).toBeDefined();
+            expect(typeof navigator.splashscreen.hide).toBe('function');
+        });
+    });
+};
+
+exports.defineManualTests = function (contentEl, createActionButton) {
+    function showFor(duration) {
+        navigator.splashscreen.show();
+        window.setTimeout(function () {
+            navigator.splashscreen.hide();
+        }, 1000 * duration);
+    }
+
+    contentEl.innerHTML = '<h1>Splashscreen Tests</h1>' +
+        '<h3>Note for WP: AutoHideSplashScreen must be set to false in config.xml</h3>' +
+        '<div id="show1"></div>' +
+        'Expected result: Will show the Cordova splashscreen for 1 second' +
+        '</p> <div id="show5"></div>' +
+        'Expected result: Will show the Cordova splashscreen for 5 seconds';
+
+    createActionButton('Show for 1 second', function () {
+        showFor(1);
+    }, 'show1');
+
+    createActionButton('Show for 5 seconds', function () {
+        showFor(5);
+    }, 'show5');
+};

+ 33 - 0
wl/plugins/cordova-plugin-splashscreen/www/splashscreen.js

xqd
@@ -0,0 +1,33 @@
+/*
+ *
+ * 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.
+ *
+*/
+
+var exec = require('cordova/exec');
+
+var splashscreen = {
+    show:function() {
+        exec(null, null, "SplashScreen", "show", []);
+    },
+    hide:function() {
+        exec(null, null, "SplashScreen", "hide", []);
+    }
+};
+
+module.exports = splashscreen;

+ 78 - 0
wl/plugins/cordova-plugin-splashscreen/www/windows/SplashScreenProxy.js

xqd
@@ -0,0 +1,78 @@
+/*
+ *
+ * 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 WinJS */
+
+var cordova = require('cordova');
+
+var isPhone = (cordova.platformId == "windows") && WinJS.Utilities.isPhone;
+var isHosted = window.location.protocol.indexOf('http') === 0;
+var localSplash = null, localSplashImage = null;
+var bgColor = "#464646"; // default backgrond color; TDOO - read it from .appxmanifest
+var splashImageSrc = (isHosted ? "ms-appx-web" : "ms-appx") + ":///images/" +
+    (isPhone ? "splashscreenphone.png" : "splashscreen.png");
+
+var SplashScreen = {
+    setBGColor: function (cssBGColor) {
+        bgColor = cssBGColor;
+        if (localSplash) {
+            localSplash.style.backgroundColor = bgColor;
+        }
+    },
+    show: function () {
+        if (localSplash) {
+            return; // already showed
+        }
+
+        localSplash = document.createElement("div");
+        localSplash.style.backgroundColor = bgColor;
+        localSplash.style.position = "fixed";
+        localSplash.style.top = "0";
+        localSplash.style.width = "100%";
+        localSplash.style.height = "100%";
+
+        localSplashImage = document.createElement("img");
+        localSplashImage.src = splashImageSrc;
+        localSplashImage.style.maxWidth = "100%";
+        localSplashImage.style.maxHeight = "100%";
+        // center horizontally
+        localSplashImage.style.margin = "0 auto";
+        localSplashImage.style.display = "block";
+        // center vertically
+        localSplashImage.style.position = "relative";
+        localSplashImage.style.top = "50%";
+        localSplashImage.style.transform = "translateY(-50%)";
+
+        localSplash.appendChild(localSplashImage);
+        document.body.appendChild(localSplash);
+    },
+    hide: function () {
+        if (localSplash) {
+            document.body.removeChild(localSplash);
+            localSplash = null;
+        }
+    }
+};
+
+module.exports = SplashScreen;
+
+require("cordova/exec/proxy").add("SplashScreen", SplashScreen);

+ 8 - 0
wl/plugins/fetch.json

xqd
@@ -86,5 +86,13 @@
         },
         "is_top_level": true,
         "variables": {}
+    },
+    "cordova-plugin-splashscreen": {
+        "source": {
+            "type": "registry",
+            "id": "cordova-plugin-splashscreen"
+        },
+        "is_top_level": true,
+        "variables": {}
     }
 }

+ 3 - 0
wl/plugins/ios.json

xqd
@@ -39,6 +39,9 @@
         },
         "ionic-plugin-keyboard": {
             "PACKAGE_NAME": "com.uhisport.football"
+        },
+        "cordova-plugin-splashscreen": {
+            "PACKAGE_NAME": "net.yihankeji.demo"
         }
     },
     "dependent_plugins": {}