mirror of
https://github.com/apache/cordova-plugin-splashscreen.git
synced 2026-02-05 00:01:30 +08:00
Compare commits
29 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3d553eb51a | ||
|
|
91234e2d59 | ||
|
|
61a7a6d3df | ||
|
|
6cb0a8cf0c | ||
|
|
4da6ca883c | ||
|
|
75327c88e4 | ||
|
|
fe288ec3c3 | ||
|
|
424e82cde4 | ||
|
|
1560fc86f8 | ||
|
|
3c2813f505 | ||
|
|
7c520181c3 | ||
|
|
a5d40d0a95 | ||
|
|
c2d22c0671 | ||
|
|
d799eda020 | ||
|
|
9541c1eb37 | ||
|
|
e73b59024a | ||
|
|
01edc0ead2 | ||
|
|
b998129669 | ||
|
|
8dc057b796 | ||
|
|
8aa0b24481 | ||
|
|
9f3b52f4b9 | ||
|
|
cf7c35d399 | ||
|
|
c368b63f0a | ||
|
|
3a1810baa5 | ||
|
|
9ebd08f69b | ||
|
|
c9ff4b428b | ||
|
|
75f78b9032 | ||
|
|
02492654ef | ||
|
|
6c12ea4380 |
32
README.md
32
README.md
@@ -1,18 +1,22 @@
|
||||
cordova-plugin-splashscreen
|
||||
----------------------------
|
||||
<!---
|
||||
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
|
||||
|
||||
For Android,
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
In your config.xml, you need to add the following preference
|
||||
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.
|
||||
-->
|
||||
|
||||
`<preference name="splashscreen" value="foo" />`
|
||||
# org.apache.cordova.splashscreen
|
||||
|
||||
Where foo is the name of the splashscreen file. Preferably a 9 patch file. Make sure to add your splashcreen files to your res/xml directory under the appropriate folders.
|
||||
|
||||
For Android, you also have to edit your projects main java file. You must add a second parameter representing a time delay to your super.loadUrl.
|
||||
|
||||
`super.loadUrl(Config.getStartUrl(), 10000);`
|
||||
|
||||
To install this plugin, follow the [Command-line Interface Guide](http://cordova.apache.org/docs/en/edge/guide_cli_index.md.html#The%20Command-line%20Interface).
|
||||
|
||||
If you are not using the Cordova Command-line Interface, follow [Using Plugman to Manage Plugins](http://cordova.apache.org/docs/en/edge/plugin_ref_plugman.md.html).
|
||||
Plugin documentation: [doc/index.md](doc/index.md)
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
* [CB-4752] Incremented plugin version on dev branch.
|
||||
|
||||
### 0.2.3 (Oct 9, 2013)
|
||||
* [CB-4806] (Re-fix) Update splashscreen image bounds for iOS 7
|
||||
* [CB-4806] Re-fix Update splashscreen image bounds for iOS 7
|
||||
* [CB-4934] plugin-splashscreen should not show by default on Windows8
|
||||
* [CB-4929] plugin-splashscreen not loading proxy windows8
|
||||
* [CB-4915] Incremented plugin version on dev branch.
|
||||
@@ -36,3 +36,16 @@
|
||||
### 0.2.4 (Oct 28, 2013)
|
||||
* CB-5128: add repo + issue tag to plugin.xml for splashscreen plugin
|
||||
* [CB-5010] Incremented plugin version on dev branch.
|
||||
|
||||
### 0.2.5 (Dec 4, 2013)
|
||||
* add ubuntu platform
|
||||
* Added amazon-fireos platform. Change to use amazon-fireos as a platform if the user agent string contains 'cordova-amazon-fireos'
|
||||
* CB-5124 - Remove splashscreen config.xml values from iOS Configuration Docs, move to plugin docs
|
||||
|
||||
### 0.2.6 (Jan 02, 2014)
|
||||
* CB-5658 Add doc/index.md for Splashscreen plugin
|
||||
* Handle error when splash image is missing.
|
||||
|
||||
### 0.2.7 (Feb 05, 2014)
|
||||
* [CB-3562] Fix aspect ratio on landscape-only iPhone applications
|
||||
* CB-4051 fix for splashscreen rotation problem
|
||||
|
||||
94
doc/index.md
Normal file
94
doc/index.md
Normal file
@@ -0,0 +1,94 @@
|
||||
<!---
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
|
||||
# org.apache.cordova.splashscreen
|
||||
|
||||
This plugin displays and hides a splash screen during application launch.
|
||||
|
||||
## Installation
|
||||
|
||||
cordova plugin add org.apache.cordova.splashscreen
|
||||
|
||||
|
||||
## Supported Platforms
|
||||
|
||||
- Amazon Fire OS
|
||||
- Android
|
||||
- BlackBerry 10
|
||||
- iOS
|
||||
- Windows Phone 7 and 8
|
||||
- Windows 8
|
||||
|
||||
|
||||
## Methods
|
||||
|
||||
- splashscreen.show
|
||||
- splashscreen.hide
|
||||
|
||||
### Android Quirks
|
||||
|
||||
In your config.xml, you need to add the following preference
|
||||
|
||||
`<preference name="splashscreen" value="foo" />`
|
||||
|
||||
Where foo is the name of the splashscreen file. Preferably a 9 patch file. Make sure to add your splashcreen files to your res/xml directory under the appropriate folders.
|
||||
|
||||
For Android, you also have to edit your projects main java file. You must add a second parameter representing a time delay to your super.loadUrl.
|
||||
|
||||
`super.loadUrl(Config.getStartUrl(), 10000);`
|
||||
|
||||
## splashscreen.hide
|
||||
|
||||
Dismiss the splash screen.
|
||||
|
||||
navigator.splashscreen.hide();
|
||||
|
||||
|
||||
### BlackBerry 10 Quirk
|
||||
|
||||
The `config.xml` file's `AutoHideSplashScreen` setting must be `false`.
|
||||
|
||||
### iOS Quirk
|
||||
|
||||
The `config.xml` file's `AutoHideSplashScreen` setting must be
|
||||
`false`. To delay hiding the splash screen for two seconds, add a
|
||||
timer such as the following in the `deviceready` event handler:
|
||||
|
||||
setTimeout(function() {
|
||||
navigator.splashscreen.hide();
|
||||
}, 2000);
|
||||
|
||||
## splashscreen.show
|
||||
|
||||
Displays the splash screen.
|
||||
|
||||
navigator.splashscreen.show();
|
||||
|
||||
|
||||
Your application cannot call `navigator.splashscreen.show()` until the app has
|
||||
started and the `deviceready` event has fired. But since typically the splash
|
||||
screen is meant to be visible before your app has started, that would seem to
|
||||
defeat the purpose of the splash screen. Providing some configuration in
|
||||
`config.xml` will automatically `show` the splash screen immediately after your
|
||||
app launch and before it has fully started and received the `deviceready`
|
||||
event. See [Icons and Splash Screens](http://cordova.apache.org/docs/en/edge/config_ref_images.md.html)
|
||||
for more information on doing this configuration. For this reason, it is
|
||||
unlikely you need to call `navigator.splashscreen.show()` to make the splash
|
||||
screen visible for app startup.
|
||||
|
||||
@@ -1,80 +0,0 @@
|
||||
---
|
||||
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.
|
||||
---
|
||||
|
||||
hide
|
||||
===============
|
||||
|
||||
Dismiss the splash screen.
|
||||
|
||||
navigator.splashscreen.hide();
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
navigator.splashscreen.hide() dismisses the applications splash screen.
|
||||
|
||||
Supported Platforms
|
||||
-------------------
|
||||
|
||||
- Android
|
||||
- iOS
|
||||
|
||||
Quick Example
|
||||
-------------
|
||||
|
||||
navigator.splashscreen.hide();
|
||||
|
||||
Full Example
|
||||
------------
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Splashscreen Example</title>
|
||||
|
||||
<script type="text/javascript" charset="utf-8" src="cordova-x.x.x.js"></script>
|
||||
<script type="text/javascript" charset="utf-8">
|
||||
|
||||
// Wait for Cordova to load
|
||||
//
|
||||
document.addEventListener("deviceready", onDeviceReady, false);
|
||||
|
||||
// Cordova is ready
|
||||
//
|
||||
function onDeviceReady() {
|
||||
navigator.splashscreen.hide();
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Example</h1>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
iOS Quirk
|
||||
------------
|
||||
|
||||
1. In your **config.xml**, you need to [modify the value](guide_project-settings_index.md.html#Project%20Settings) for **"AutoHideSplashScreen”** to false
|
||||
|
||||
2. Then, if you want to delay hiding the splash screen for 2 seconds, you can do this in your **deviceready** event handler:
|
||||
|
||||
setTimeout(function() {
|
||||
navigator.splashscreen.hide();
|
||||
}, 2000);
|
||||
@@ -1,90 +0,0 @@
|
||||
---
|
||||
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.
|
||||
---
|
||||
|
||||
Splashscreen
|
||||
==========
|
||||
|
||||
> Enables developers to show/hide the application's splash screen.
|
||||
|
||||
|
||||
Methods
|
||||
-------
|
||||
|
||||
- show
|
||||
- hide
|
||||
|
||||
Permissions
|
||||
-----------
|
||||
|
||||
### Android
|
||||
|
||||
#### app/res/xml/config.xml
|
||||
|
||||
<plugin name="SplashScreen" value="org.apache.cordova.SplashScreen"/>
|
||||
|
||||
### iOS
|
||||
|
||||
#### config.xml
|
||||
|
||||
<plugin name="SplashScreen" value="CDVSplashScreen" />
|
||||
|
||||
Setup
|
||||
-----
|
||||
|
||||
### Android
|
||||
|
||||
1. Copy your splash screen image into the res/drawable directories of your Android project. The sizes of each image should be:
|
||||
|
||||
- xlarge (xhdpi): at least 960 x 720
|
||||
- large (hdpi): at least 640 x 480
|
||||
- medium (mdpi): at least 470 x 320
|
||||
- small (ldpi): at least 426 x 320
|
||||
|
||||
It is highly recommended that you use a [9-patch image](https://developer.android.com/tools/help/draw9patch.html) for your splash screen.
|
||||
|
||||
2. In the onCreate method of the class that extends DroidGap add the following two lines:
|
||||
|
||||
super.setIntegerProperty("splashscreen", R.drawable.splash);
|
||||
super.loadUrl(Config.getStartUrl(), 10000);
|
||||
|
||||
The first line 'super.setIntegerProperty' sets the image to be displayed as the splashscreen. If you have named your image anything other than splash.png you will have to modify this line.
|
||||
The second line is the normal 'super.loadUrl' line but it has a second parameter which is the timeout value for the splash screen. In this example the splash screen will display for 10 seconds. If you want to dismiss the splash screen once you get the "deviceready" event you should call the navigator.splashscreen.hide() method.
|
||||
|
||||
### iOS
|
||||
|
||||
1. Copy your splash screen images into the **Resources/splash** directory of your iOS project. Only add the images for the devices you want to support (iPad screen size or iPhone screen size). The sizes of each image should be:
|
||||
|
||||
- Default-568h@2x~iphone.png (640x1136 pixels)
|
||||
- Default-Landscape@2x~ipad.png (2048x1496 pixels)
|
||||
- Default-Landscape~ipad.png (1024x748 pixels)
|
||||
- Default-Portrait@2x~ipad.png (1536x2008 pixels)
|
||||
- Default-Portrait~ipad.png (768x1004 pixels)
|
||||
- Default@2x~iphone.png (640x960 pixels)
|
||||
- Default~iphone.png (320x480 pixels)
|
||||
|
||||
### BlackBerry10
|
||||
|
||||
## Quirks
|
||||
|
||||
The SplashScreen BlackBerry10 plugin implements hide(), but show() is not possible using the built in OS mechanism. The advantage to using this is the splash screen is displayed before WebKit boots and issupports multiple images for various device resolutions and orientations.
|
||||
We also implemented the AutoHideSplashScreen config.xml value, similar to iOS.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
---
|
||||
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.
|
||||
---
|
||||
|
||||
show
|
||||
===============
|
||||
|
||||
Displays the splash screen.
|
||||
|
||||
navigator.splashscreen.show();
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
navigator.splashscreen.show() displays the applications splash screen.
|
||||
|
||||
Supported Platforms
|
||||
-------------------
|
||||
|
||||
- Android
|
||||
- iOS
|
||||
|
||||
Quick Example
|
||||
-------------
|
||||
|
||||
navigator.splashscreen.show();
|
||||
|
||||
Full Example
|
||||
------------
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Splashscreen Example</title>
|
||||
|
||||
<script type="text/javascript" charset="utf-8" src="cordova-x.x.x.js"></script>
|
||||
<script type="text/javascript" charset="utf-8">
|
||||
|
||||
// Wait for Cordova to load
|
||||
//
|
||||
document.addEventListener("deviceready", onDeviceReady, false);
|
||||
|
||||
// Cordova is ready
|
||||
//
|
||||
function onDeviceReady() {
|
||||
navigator.splashscreen.show();
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Example</h1>
|
||||
</body>
|
||||
</html>
|
||||
19
plugin.xml
19
plugin.xml
@@ -2,7 +2,7 @@
|
||||
|
||||
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
|
||||
id="org.apache.cordova.splashscreen"
|
||||
version="0.2.4">
|
||||
version="0.2.7">
|
||||
<name>Splashscreen</name>
|
||||
<description>Cordova Splashscreen Plugin</description>
|
||||
<license>Apache 2.0</license>
|
||||
@@ -26,6 +26,23 @@
|
||||
<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="/*">
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
*/
|
||||
|
||||
#import "CDVSplashScreen.h"
|
||||
#import <Cordova/CDVViewController.h>
|
||||
|
||||
#define kSplashScreenDurationDefault 0.25f
|
||||
|
||||
@@ -123,6 +124,12 @@
|
||||
// Use UILaunchImageFile if specified in plist. Otherwise, use Default.
|
||||
NSString* imageName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"UILaunchImageFile"];
|
||||
|
||||
// Checks to see if the developer has locked the orientation to use only one of Portrait or Landscape
|
||||
CDVViewController* vc = (CDVViewController*)self.viewController;
|
||||
BOOL supportsLandscape = [vc supportsOrientation:UIInterfaceOrientationLandscapeLeft] || [vc supportsOrientation:UIInterfaceOrientationLandscapeRight];
|
||||
BOOL supportsPortrait = [vc supportsOrientation:UIInterfaceOrientationPortrait] || [vc supportsOrientation:UIInterfaceOrientationPortraitUpsideDown];
|
||||
BOOL isOrientationLocked = !(supportsPortrait && supportsLandscape);
|
||||
|
||||
if (imageName) {
|
||||
imageName = [imageName stringByDeletingPathExtension];
|
||||
} else {
|
||||
@@ -131,7 +138,7 @@
|
||||
|
||||
if (CDV_IsIPhone5()) {
|
||||
imageName = [imageName stringByAppendingString:@"-568h"];
|
||||
} else if (CDV_IsIPad()) {
|
||||
} else if (CDV_IsIPad() || isOrientationLocked) {
|
||||
switch (orientation) {
|
||||
case UIInterfaceOrientationLandscapeLeft:
|
||||
case UIInterfaceOrientationLandscapeRight:
|
||||
@@ -163,17 +170,29 @@
|
||||
- (void)updateBounds
|
||||
{
|
||||
UIImage* img = _imageView.image;
|
||||
CGRect imgBounds = CGRectMake(0, 0, img.size.width, img.size.height);
|
||||
CGRect imgBounds = (img) ? CGRectMake(0, 0, img.size.width, img.size.height) : CGRectZero;
|
||||
|
||||
CGSize screenSize = [self.viewController.view convertRect:[UIScreen mainScreen].bounds fromView:nil].size;
|
||||
UIInterfaceOrientation orientation = self.viewController.interfaceOrientation;
|
||||
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.
|
||||
*/
|
||||
if (UIInterfaceOrientationIsLandscape(orientation) && !CDV_IsIPad()) {
|
||||
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 {
|
||||
}
|
||||
} 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;
|
||||
@@ -188,6 +207,7 @@
|
||||
imgBounds.size.width *= ratio;
|
||||
}
|
||||
|
||||
_imageView.transform = imgTransform;
|
||||
_imageView.frame = imgBounds;
|
||||
}
|
||||
|
||||
|
||||
42
src/ubuntu/splashscreen.cpp
Normal file
42
src/ubuntu/splashscreen.cpp
Normal file
@@ -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
src/ubuntu/splashscreen.h
Normal file
52
src/ubuntu/splashscreen.h
Normal file
@@ -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
|
||||
70
test/cordova-incl.js
vendored
70
test/cordova-incl.js
vendored
@@ -1,70 +0,0 @@
|
||||
/*
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
var PLAT;
|
||||
if (/Android/.exec(navigator.userAgent)) {
|
||||
PLAT = 'android';
|
||||
} else if (/(iPad)|(iPhone)|(iPod)/.exec(navigator.userAgent)) {
|
||||
PLAT = 'ios';
|
||||
} else if (/(BB10)|(PlayBook)|(BlackBerry)/.exec(navigator.userAgent)) {
|
||||
PLAT = 'blackberry';
|
||||
}
|
||||
|
||||
var scripts = document.getElementsByTagName('script');
|
||||
var currentPath = scripts[scripts.length - 1].src;
|
||||
var platformCordovaPath = currentPath.replace("cordova-incl.js", "cordova." + PLAT + ".js");
|
||||
var normalCordovaPath = currentPath.replace("cordova-incl.js", "cordova.js");
|
||||
var cordovaPath = normalCordovaPath;
|
||||
|
||||
if (PLAT) {
|
||||
// XHR to local file is an error on some platforms, windowsphone for one
|
||||
try {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("GET", platformCordovaPath, false);
|
||||
xhr.onreadystatechange = function() {
|
||||
|
||||
if (this.readyState == this.DONE && this.responseText.length > 0) {
|
||||
if(parseInt(this.status) >= 400){
|
||||
cordovaPath = normalCordovaPath;
|
||||
}else{
|
||||
cordovaPath = platformCordovaPath;
|
||||
}
|
||||
}
|
||||
};
|
||||
xhr.send(null);
|
||||
}
|
||||
catch(e){
|
||||
cordovaPath = normalCordovaPath;
|
||||
} // access denied!
|
||||
}
|
||||
|
||||
if (!window._doNotWriteCordovaScript) {
|
||||
document.write('<script type="text/javascript" charset="utf-8" src="' + cordovaPath + '"></script>');
|
||||
}
|
||||
|
||||
function backHome() {
|
||||
if (window.device && device.platform && device.platform.toLowerCase() == 'android') {
|
||||
navigator.app.backHistory();
|
||||
}
|
||||
else {
|
||||
window.history.go(-1);
|
||||
}
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
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.
|
||||
|
||||
-->
|
||||
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta name="viewport" content="width=device-width,height=device-height,user-scalable=no,initial-scale=1.0" />
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
||||
<title>Cordova Mobile Spec</title>
|
||||
<link rel="stylesheet" href="master.css" type="text/css" media="screen" title="no title" charset="utf-8">
|
||||
<script type="text/javascript" charset="utf-8" src="cordova-incl.js"></script>
|
||||
<script type="text/javascript" charset="utf-8" src="main.js"></script>
|
||||
|
||||
</head>
|
||||
<body onload="init();" id="stage" class="theme">
|
||||
<h1>Apache Cordova Tests</h1>
|
||||
<div id="info">
|
||||
<h4>Platform: <span id="platform"> </span></h4>
|
||||
<h4>Version: <span id="version"> </span></h4>
|
||||
<h4>UUID: <span id="uuid"> </span></h4>
|
||||
<h4>Name: <span id="name"> </span></h4>
|
||||
<h4>Model: <span id="model"> </span></h4>
|
||||
<h4>Width: <span id="width"> </span>, Height: <span id="height">
|
||||
</span>, Color Depth: <span id="colorDepth"></span></h4>
|
||||
<h4>User-Agent: <span id="user-agent"> </span></h4>
|
||||
</div>
|
||||
<a href="autotest/index.html" class="btn large">Automatic Test</a>
|
||||
<a href="accelerometer/index.html" class="btn large">Accelerometer</a>
|
||||
<a href="audio/index.html" class="btn large">Audio Play/Record</a>
|
||||
<a href="battery/index.html" class="btn large">Battery</a>
|
||||
<a href="camera/index.html" class="btn large">Camera</a>
|
||||
<a href="compass/index.html" class="btn large">Compass</a>
|
||||
<a href="contacts/index.html" class="btn large">Contacts</a>
|
||||
<a href="events/index.html" class="btn large">Events</a>
|
||||
<a href="location/index.html" class="btn large">Location</a>
|
||||
<a href="lazyloadjs/index.html" class="btn large">Lazy Loading of cordova-incl.js</a>
|
||||
<a href="misc/index.html" class="btn large">Misc Content</a>
|
||||
<a href="network/index.html" class="btn large">Network</a>
|
||||
<a href="notification/index.html" class="btn large">Notification</a>
|
||||
<a href="splashscreen/index.html" class="btn large">Splashscreen</a>
|
||||
<a href="sql/index.html" class="btn large">Web SQL</a>
|
||||
<a href="storage/index.html" class="btn large">Local Storage</a>
|
||||
<a href="benchmarks/index.html" class="btn large">Benchmarks</a>
|
||||
<a href="inappbrowser/index.html" class="btn large">In App Browser</a>
|
||||
</body>
|
||||
</html>
|
||||
163
test/main.js
163
test/main.js
@@ -1,163 +0,0 @@
|
||||
/*
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
var deviceInfo = function() {
|
||||
document.getElementById("platform").innerHTML = device.platform;
|
||||
document.getElementById("version").innerHTML = device.version;
|
||||
document.getElementById("uuid").innerHTML = device.uuid;
|
||||
document.getElementById("name").innerHTML = device.name;
|
||||
document.getElementById("model").innerHTML = device.model;
|
||||
document.getElementById("width").innerHTML = screen.width;
|
||||
document.getElementById("height").innerHTML = screen.height;
|
||||
document.getElementById("colorDepth").innerHTML = screen.colorDepth;
|
||||
};
|
||||
|
||||
var getLocation = function() {
|
||||
var suc = function(p) {
|
||||
alert(p.coords.latitude + " " + p.coords.longitude);
|
||||
};
|
||||
var locFail = function() {
|
||||
};
|
||||
navigator.geolocation.getCurrentPosition(suc, locFail);
|
||||
};
|
||||
|
||||
var beep = function() {
|
||||
navigator.notification.beep(2);
|
||||
};
|
||||
|
||||
var vibrate = function() {
|
||||
navigator.notification.vibrate(0);
|
||||
};
|
||||
|
||||
function roundNumber(num) {
|
||||
var dec = 3;
|
||||
var result = Math.round(num * Math.pow(10, dec)) / Math.pow(10, dec);
|
||||
return result;
|
||||
}
|
||||
|
||||
var accelerationWatch = null;
|
||||
|
||||
function updateAcceleration(a) {
|
||||
document.getElementById('x').innerHTML = roundNumber(a.x);
|
||||
document.getElementById('y').innerHTML = roundNumber(a.y);
|
||||
document.getElementById('z').innerHTML = roundNumber(a.z);
|
||||
}
|
||||
|
||||
var toggleAccel = function() {
|
||||
if (accelerationWatch !== null) {
|
||||
navigator.accelerometer.clearWatch(accelerationWatch);
|
||||
updateAcceleration({
|
||||
x : "",
|
||||
y : "",
|
||||
z : ""
|
||||
});
|
||||
accelerationWatch = null;
|
||||
} else {
|
||||
var options = {};
|
||||
options.frequency = 1000;
|
||||
accelerationWatch = navigator.accelerometer.watchAcceleration(
|
||||
updateAcceleration, function(ex) {
|
||||
alert("accel fail (" + ex.name + ": " + ex.message + ")");
|
||||
}, options);
|
||||
}
|
||||
};
|
||||
|
||||
var preventBehavior = function(e) {
|
||||
e.preventDefault();
|
||||
};
|
||||
|
||||
function dump_pic(data) {
|
||||
var viewport = document.getElementById('viewport');
|
||||
console.log(data);
|
||||
viewport.style.display = "";
|
||||
viewport.style.position = "absolute";
|
||||
viewport.style.top = "10px";
|
||||
viewport.style.left = "10px";
|
||||
document.getElementById("test_img").src = "data:image/jpeg;base64," + data;
|
||||
}
|
||||
|
||||
function fail(msg) {
|
||||
alert(msg);
|
||||
}
|
||||
|
||||
function show_pic() {
|
||||
navigator.camera.getPicture(dump_pic, fail, {
|
||||
quality : 50
|
||||
});
|
||||
}
|
||||
|
||||
function close() {
|
||||
var viewport = document.getElementById('viewport');
|
||||
viewport.style.position = "relative";
|
||||
viewport.style.display = "none";
|
||||
}
|
||||
|
||||
// This is just to do this.
|
||||
function readFile() {
|
||||
navigator.file.read('/sdcard/cordova.txt', fail, fail);
|
||||
}
|
||||
|
||||
function writeFile() {
|
||||
navigator.file.write('foo.txt', "This is a test of writing to a file",
|
||||
fail, fail);
|
||||
}
|
||||
|
||||
function contacts_success(contacts) {
|
||||
alert(contacts.length
|
||||
+ ' contacts returned.'
|
||||
+ (contacts[2] && contacts[2].name ? (' Third contact is ' + contacts[2].name.formatted)
|
||||
: ''));
|
||||
}
|
||||
|
||||
function get_contacts() {
|
||||
var obj = new ContactFindOptions();
|
||||
obj.filter = "";
|
||||
obj.multiple = true;
|
||||
obj.limit = 5;
|
||||
navigator.service.contacts.find(
|
||||
[ "displayName", "name" ], contacts_success,
|
||||
fail, obj);
|
||||
}
|
||||
|
||||
var networkReachableCallback = function(reachability) {
|
||||
// There is no consistency on the format of reachability
|
||||
var networkState = reachability.code || reachability;
|
||||
|
||||
var currentState = {};
|
||||
currentState[NetworkStatus.NOT_REACHABLE] = 'No network connection';
|
||||
currentState[NetworkStatus.REACHABLE_VIA_CARRIER_DATA_NETWORK] = 'Carrier data connection';
|
||||
currentState[NetworkStatus.REACHABLE_VIA_WIFI_NETWORK] = 'WiFi connection';
|
||||
|
||||
confirm("Connection type:\n" + currentState[networkState]);
|
||||
};
|
||||
|
||||
function check_network() {
|
||||
navigator.network.isReachable("www.mobiledevelopersolutions.com",
|
||||
networkReachableCallback, {});
|
||||
}
|
||||
|
||||
function init() {
|
||||
// the next line makes it impossible to see Contacts on the HTC Evo since it
|
||||
// doesn't have a scroll button
|
||||
// document.addEventListener("touchmove", preventBehavior, false);
|
||||
document.addEventListener("deviceready", deviceInfo, true);
|
||||
document.getElementById("user-agent").textContent = navigator.userAgent;
|
||||
}
|
||||
164
test/master.css
164
test/master.css
@@ -1,164 +0,0 @@
|
||||
/*
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
body {
|
||||
background:#222 none repeat scroll 0 0;
|
||||
color:#666;
|
||||
font-family:Helvetica;
|
||||
font-size:72%;
|
||||
line-height:1.5em;
|
||||
margin:0;
|
||||
border-top:1px solid #393939;
|
||||
}
|
||||
|
||||
#info{
|
||||
background:#ffa;
|
||||
border: 1px solid #ffd324;
|
||||
-webkit-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
clear:both;
|
||||
margin:15px 6px 0;
|
||||
min-width:295px;
|
||||
max-width:97%;
|
||||
padding:4px 0px 2px 10px;
|
||||
word-wrap:break-word;
|
||||
margin-bottom:10px;
|
||||
display:inline-block;
|
||||
min-height: 160px;
|
||||
max-height: 300px;
|
||||
overflow: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
|
||||
#info > h4{
|
||||
font-size:.95em;
|
||||
margin:5px 0;
|
||||
}
|
||||
|
||||
#stage.theme{
|
||||
padding-top:3px;
|
||||
}
|
||||
|
||||
/* Definition List */
|
||||
#stage.theme > dl{
|
||||
padding-top:10px;
|
||||
clear:both;
|
||||
margin:0;
|
||||
list-style-type:none;
|
||||
padding-left:10px;
|
||||
overflow:auto;
|
||||
}
|
||||
|
||||
#stage.theme > dl > dt{
|
||||
font-weight:bold;
|
||||
float:left;
|
||||
margin-left:5px;
|
||||
}
|
||||
|
||||
#stage.theme > dl > dd{
|
||||
width:45px;
|
||||
float:left;
|
||||
color:#a87;
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
/* Content Styling */
|
||||
#stage.theme > h1, #stage.theme > h2, #stage.theme > p{
|
||||
margin:1em 0 .5em 13px;
|
||||
}
|
||||
|
||||
#stage.theme > h1{
|
||||
color:#eee;
|
||||
font-size:1.6em;
|
||||
text-align:center;
|
||||
margin:0;
|
||||
margin-top:15px;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
#stage.theme > h2{
|
||||
clear:both;
|
||||
margin:0;
|
||||
padding:3px;
|
||||
font-size:1em;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
/* Stage Buttons */
|
||||
#stage.theme .btn{
|
||||
border: 1px solid #555;
|
||||
-webkit-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
text-align:center;
|
||||
display:inline-block;
|
||||
background:#444;
|
||||
width:150px;
|
||||
color:#9ab;
|
||||
font-size:1.1em;
|
||||
text-decoration:none;
|
||||
padding:1.2em 0;
|
||||
margin:3px 0px 3px 5px;
|
||||
}
|
||||
|
||||
#stage.theme .large{
|
||||
width:308px;
|
||||
padding:1.2em 0;
|
||||
}
|
||||
|
||||
#stage.theme .wide{
|
||||
width:100%;
|
||||
padding:1.2em 0;
|
||||
}
|
||||
|
||||
#stage.theme .backBtn{
|
||||
border: 1px solid #555;
|
||||
-webkit-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
text-align:center;
|
||||
display:block;
|
||||
float:right;
|
||||
background:#666;
|
||||
width:75px;
|
||||
color:#9ab;
|
||||
font-size:1.1em;
|
||||
text-decoration:none;
|
||||
padding:1.2em 0;
|
||||
margin:3px 5px 3px 5px;
|
||||
}
|
||||
|
||||
#stage.theme .input{
|
||||
border: 1px solid #555;
|
||||
-webkit-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
text-align:center;
|
||||
display:block;
|
||||
float:light;
|
||||
background:#888;
|
||||
color:#9cd;
|
||||
font-size:1.1em;
|
||||
text-decoration:none;
|
||||
padding:1.2em 0;
|
||||
margin:3px 0px 3px 5px;
|
||||
}
|
||||
|
||||
#stage.theme .numeric{
|
||||
width:100%;
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
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.
|
||||
|
||||
-->
|
||||
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta name="viewport" content="width=device-width,user-scalable=no,maximum-scale=1.0,initial-scale=1.0" />
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8"> <!-- ISO-8859-1 -->
|
||||
<title>Cordova Mobile Spec</title>
|
||||
<link rel="stylesheet" href="../master.css" type="text/css" media="screen" title="no title" charset="utf-8">
|
||||
<script type="text/javascript" charset="utf-8" src="../cordova-incl.js"></script>
|
||||
|
||||
<script type="text/javascript" charset="utf-8">
|
||||
function showFor(duration) {
|
||||
navigator.splashscreen.show();
|
||||
window.setTimeout(function() {
|
||||
navigator.splashscreen.hide();
|
||||
}, 1000 * duration);
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body id="stage" class="theme">
|
||||
<h1>Splashscreen</h1>
|
||||
<h2>Action</h2>
|
||||
<div class="btn large" onclick="showFor(1)">Show for 1 second</div>
|
||||
<div class="btn large" onclick="showFor(5)">Show for 5 seconds</div>
|
||||
<h2> </h2><div class="backBtn" onclick="backHome();">Back</div>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user