mobile_template 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/mobile_template/version.rb +1 -1
- data/mobile_template.gemspec +1 -1
- data/templates/assets/Gemfile +1 -1
- data/templates/assets/source/javascripts/vendor/cordova.js +2106 -1975
- data/templates/assets/source/javascripts/vendor/jquery.js +614 -477
- data/templates/assets/source/javascripts/vendor/jquery.mobile.js +519 -378
- data/templates/assets/source/stylesheets/vendor/jquery.mobile.css.scss +683 -502
- data/templates/cordova_android/VERSION +1 -1
- data/templates/cordova_android/bin/create +5 -1
- data/templates/cordova_android/bin/templates/project/cordova/create +5 -0
- data/templates/cordova_android/bin/templates/project/cordova/debug +1 -1
- data/templates/cordova_android/bin/templates/project/cordova/templates/project/AndroidManifest.xml +18 -25
- data/templates/cordova_android/bin/templates/project/cordova/templates/project/assets/www/index.html +6 -6
- data/templates/cordova_android/framework/assets/js/cordova.android.js +2106 -1975
- data/templates/cordova_android/framework/assets/www/index.html +1 -1
- data/templates/cordova_android/framework/build.xml +2 -42
- data/templates/cordova_android/framework/project.properties +1 -1
- data/templates/cordova_android/framework/res/drawable/splash.png +0 -0
- data/templates/cordova_android/framework/res/drawable-hdpi/icon.png +0 -0
- data/templates/cordova_android/framework/res/drawable-ldpi/icon.png +0 -0
- data/templates/cordova_android/framework/res/drawable-mdpi/icon.png +0 -0
- data/templates/cordova_android/framework/res/xml/plugins.xml +2 -1
- data/templates/cordova_android/framework/src/com/phonegap/api/PluginManager.java +1 -0
- data/templates/cordova_android/framework/src/org/apache/cordova/AudioPlayer.java +24 -16
- data/templates/cordova_android/framework/src/org/apache/cordova/CameraLauncher.java +35 -10
- data/templates/cordova_android/framework/src/org/apache/cordova/ContactAccessor.java +2 -1
- data/templates/cordova_android/framework/src/org/apache/cordova/ContactAccessorSdk5.java +67 -65
- data/templates/cordova_android/framework/src/org/apache/cordova/ContactManager.java +51 -63
- data/templates/cordova_android/framework/src/org/apache/cordova/CordovaChromeClient.java +3 -0
- data/templates/cordova_android/framework/src/org/apache/cordova/CordovaWebViewClient.java +6 -2
- data/templates/cordova_android/framework/src/org/apache/cordova/Device.java +108 -108
- data/templates/cordova_android/framework/src/org/apache/cordova/DroidGap.java +110 -77
- data/templates/cordova_android/framework/src/org/apache/cordova/FileTransfer.java +90 -44
- data/templates/cordova_android/framework/src/org/apache/cordova/FileUtils.java +20 -20
- data/templates/cordova_android/framework/src/org/apache/cordova/LinearLayoutSoftKeyboardDetect.java +2 -2
- data/templates/cordova_android/framework/src/org/apache/cordova/NetworkManager.java +7 -8
- data/templates/cordova_android/framework/src/org/apache/cordova/Notification.java +2 -2
- data/templates/cordova_android/framework/src/org/apache/cordova/SplashScreen.java +23 -0
- data/templates/cordova_android/framework/src/org/apache/cordova/Storage.java +3 -3
- data/templates/cordova_android/framework/src/org/apache/cordova/api/CordovaInterface.java +2 -0
- data/templates/cordova_android/framework/src/org/apache/cordova/api/PluginEntry.java +119 -0
- data/templates/cordova_android/framework/src/org/apache/cordova/api/PluginManager.java +260 -258
- data/templates/cordova_android/framework/src/org/apache/cordova/api/PluginResult.java +2 -2
- data/templates/cordova_android/releasenotes.md +42 -0
- data/templates/cordova_android/test/.classpath +8 -0
- data/templates/cordova_android/test/.project +33 -0
- data/templates/cordova_android/test/AndroidManifest.xml +87 -0
- data/templates/cordova_android/test/README.md +23 -0
- data/templates/cordova_android/test/ant.properties +17 -0
- data/templates/cordova_android/test/assets/www/backbuttonmultipage/index.html +23 -0
- data/templates/cordova_android/test/assets/www/backbuttonmultipage/sample2.html +23 -0
- data/templates/cordova_android/test/assets/www/backbuttonmultipage/sample3.html +26 -0
- data/templates/cordova_android/test/assets/www/background/index.html +99 -0
- data/templates/cordova_android/test/assets/www/background/index2.html +98 -0
- data/templates/cordova_android/test/assets/www/cordova-1.6.0.js +4985 -0
- data/templates/cordova_android/test/assets/www/cordova.js +2 -0
- data/templates/cordova_android/test/assets/www/htmlnotfound/error.html +1 -0
- data/templates/cordova_android/test/assets/www/iframe/index.html +33 -0
- data/templates/cordova_android/test/assets/www/iframe/index2.html +24 -0
- data/templates/cordova_android/test/assets/www/index.html +47 -0
- data/templates/cordova_android/test/assets/www/jqmtabbackbutton/index.html +49 -0
- data/templates/cordova_android/test/assets/www/jqmtabbackbutton/tab1.html +29 -0
- data/templates/cordova_android/test/assets/www/jqmtabbackbutton/tab2.html +30 -0
- data/templates/cordova_android/test/assets/www/jqmtabbackbutton/tab3.html +30 -0
- data/templates/cordova_android/test/assets/www/lifecycle/index.html +108 -0
- data/templates/cordova_android/test/assets/www/lifecycle/index2.html +104 -0
- data/templates/cordova_android/test/assets/www/main.js +150 -0
- data/templates/cordova_android/test/assets/www/master.css +117 -0
- data/templates/cordova_android/test/assets/www/menus/index.html +29 -0
- data/templates/cordova_android/test/assets/www/splashscreen/index.html +22 -0
- data/templates/cordova_android/test/assets/www/userwebview/index.html +49 -0
- data/templates/cordova_android/test/assets/www/whitelist/index.html +29 -0
- data/templates/cordova_android/test/assets/www/whitelist/index2.html +23 -0
- data/templates/cordova_android/test/assets/www/xhr/index.html +48 -0
- data/templates/cordova_android/test/build.xml +85 -0
- data/templates/cordova_android/test/libs/cordova-1.6.0.jar +0 -0
- data/templates/cordova_android/test/project.properties +11 -0
- data/templates/cordova_android/{framework → test}/res/drawable/icon.png +0 -0
- data/templates/cordova_android/test/res/drawable/sandy.jpg +0 -0
- data/templates/cordova_android/test/res/drawable-hdpi/ic_launcher.png +0 -0
- data/templates/cordova_android/test/res/drawable-ldpi/ic_launcher.png +0 -0
- data/templates/cordova_android/test/res/drawable-mdpi/ic_launcher.png +0 -0
- data/templates/cordova_android/test/res/layout/main.xml +13 -0
- data/templates/cordova_android/test/res/values/strings.xml +4 -0
- data/templates/cordova_android/{bin/templates/project/cordova/templates/project → test}/res/xml/cordova.xml +0 -0
- data/templates/cordova_android/{bin/templates/project/cordova/templates/project → test}/res/xml/plugins.xml +1 -1
- data/templates/cordova_android/test/src/org/apache/cordova/test/ActivityPlugin.java +81 -0
- data/templates/cordova_android/test/src/org/apache/cordova/test/FixWebView.java +43 -0
- data/templates/cordova_android/test/src/org/apache/cordova/test/backbuttonmultipage.java +30 -0
- data/templates/cordova_android/test/src/org/apache/cordova/test/background.java +34 -0
- data/templates/cordova_android/test/src/org/apache/cordova/test/errorurl.java +32 -0
- data/templates/cordova_android/test/src/org/apache/cordova/test/htmlnotfound.java +31 -0
- data/templates/cordova_android/test/src/org/apache/cordova/test/iframe.java +30 -0
- data/templates/cordova_android/test/src/org/apache/cordova/test/jqmtabbackbutton.java +30 -0
- data/templates/cordova_android/test/src/org/apache/cordova/test/lifecycle.java +30 -0
- data/templates/cordova_android/test/src/org/apache/cordova/test/loading.java +31 -0
- data/templates/cordova_android/test/src/org/apache/cordova/test/menus.java +80 -0
- data/templates/cordova_android/test/src/org/apache/cordova/test/splashscreen.java +35 -0
- data/templates/cordova_android/test/src/org/apache/cordova/test/tests.java +32 -0
- data/templates/cordova_android/test/src/org/apache/cordova/test/timeout.java +34 -0
- data/templates/cordova_android/test/src/org/apache/cordova/test/userwebview.java +72 -0
- data/templates/cordova_android/test/src/org/apache/cordova/test/whitelist.java +51 -0
- data/templates/cordova_android/test/src/org/apache/cordova/test/xhr.java +30 -0
- metadata +83 -30
- data/templates/cordova_android/framework/assets/js/accelerometer.js +0 -137
- data/templates/cordova_android/framework/assets/js/app.js +0 -89
- data/templates/cordova_android/framework/assets/js/battery.js +0 -134
- data/templates/cordova_android/framework/assets/js/camera.js +0 -168
- data/templates/cordova_android/framework/assets/js/capture.js +0 -203
- data/templates/cordova_android/framework/assets/js/compass.js +0 -168
- data/templates/cordova_android/framework/assets/js/contact.js +0 -310
- data/templates/cordova_android/framework/assets/js/cordova.js.base +0 -924
- data/templates/cordova_android/framework/assets/js/crypto.js +0 -54
- data/templates/cordova_android/framework/assets/js/device.js +0 -83
- data/templates/cordova_android/framework/assets/js/file.js +0 -1082
- data/templates/cordova_android/framework/assets/js/filetransfer.js +0 -125
- data/templates/cordova_android/framework/assets/js/geolocation.js +0 -209
- data/templates/cordova_android/framework/assets/js/header.txt +0 -19
- data/templates/cordova_android/framework/assets/js/media.js +0 -233
- data/templates/cordova_android/framework/assets/js/network.js +0 -100
- data/templates/cordova_android/framework/assets/js/notification.js +0 -133
- data/templates/cordova_android/framework/assets/js/position.js +0 -100
- data/templates/cordova_android/framework/assets/js/storage.js +0 -439
|
@@ -0,0 +1 @@
|
|
|
1
|
+
This is an error page.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<!DOCTYPE HTML>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta name="viewport" content="width=320; user-scalable=no" />
|
|
5
|
+
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
|
6
|
+
<title>Cordova Tests</title>
|
|
7
|
+
<link rel="stylesheet" href="../master.css" type="text/css" media="screen" title="no title">
|
|
8
|
+
<script type="text/javascript" charset="utf-8" src="../cordova.js"></script>
|
|
9
|
+
<script type="text/javascript" charset="utf-8" src="../main.js"></script>
|
|
10
|
+
<script>
|
|
11
|
+
function loadUrl(url) {
|
|
12
|
+
document.getElementById('iframe').src = url;
|
|
13
|
+
}</script>
|
|
14
|
+
</head>
|
|
15
|
+
<body onload="init();" id="stage" class="theme">
|
|
16
|
+
<h1>IFrame</h1>
|
|
17
|
+
<div id="info">
|
|
18
|
+
<h4>Platform: <span id="platform"> </span>, Version: <span id="version"> </span></h4>
|
|
19
|
+
<h4>UUID: <span id="uuid"> </span>, Name: <span id="name"> </span></h4>
|
|
20
|
+
<h4>Width: <span id="width"> </span>, Height: <span id="height">
|
|
21
|
+
</span>, Color Depth: <span id="colorDepth"></span></h4>
|
|
22
|
+
</div>
|
|
23
|
+
<div id="info">
|
|
24
|
+
Press the two buttons:<br>
|
|
25
|
+
1. Google Maps should display in iframe.<br>
|
|
26
|
+
2. Page 2 replaces current page.<br>
|
|
27
|
+
(NOTE: THIS BEHAVIOR IS WRONG - AND NEEDS TO BE FIXED IN FUTURE RELEASE.)
|
|
28
|
+
</div>
|
|
29
|
+
<iframe id="iframe" src="" width="90%" height="200px"></iframe>
|
|
30
|
+
<a href="javascript:" class="btn large" onclick="loadUrl('http://maps.google.com/maps?output=embed');">Google Maps</a>
|
|
31
|
+
<a href="javascript:" class="btn large" onclick="loadUrl('index2.html');">Page 2</a>
|
|
32
|
+
</body>
|
|
33
|
+
</html>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<!DOCTYPE HTML>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta name="viewport" content="width=320; user-scalable=no" />
|
|
5
|
+
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
|
6
|
+
<title>Cordova Tests</title>
|
|
7
|
+
<link rel="stylesheet" href="../master.css" type="text/css" media="screen" title="no title">
|
|
8
|
+
<script type="text/javascript" charset="utf-8" src="../cordova.js"></script>
|
|
9
|
+
<script type="text/javascript" charset="utf-8" src="../main.js"></script>
|
|
10
|
+
</head>
|
|
11
|
+
<body onload="init();" id="stage" class="theme">
|
|
12
|
+
<h1>IFrame window</h1>
|
|
13
|
+
<div id="info">
|
|
14
|
+
<h4>Platform: <span id="platform"> </span>, Version: <span id="version"> </span></h4>
|
|
15
|
+
<h4>UUID: <span id="uuid"> </span>, Name: <span id="name"> </span></h4>
|
|
16
|
+
<h4>Width: <span id="width"> </span>, Height: <span id="height">
|
|
17
|
+
</span>, Color Depth: <span id="colorDepth"></span></h4>
|
|
18
|
+
</div>
|
|
19
|
+
<div id="info">
|
|
20
|
+
This should display a Cordova page inside an iframe. The info above should be filled out.
|
|
21
|
+
(NOTE: THIS DOES NOT WORK AND NEEDS TO BE FIXED IN FUTURE RELEASE.)
|
|
22
|
+
</div>
|
|
23
|
+
</body>
|
|
24
|
+
</html>
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<!DOCTYPE HTML>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta name="viewport" content="width=320; user-scalable=no" />
|
|
5
|
+
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
|
6
|
+
<title>Cordova Tests</title>
|
|
7
|
+
<link rel="stylesheet" href="master.css" type="text/css" media="screen" title="no title">
|
|
8
|
+
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
|
|
9
|
+
<script type="text/javascript" charset="utf-8" src="main.js"></script>
|
|
10
|
+
<script>
|
|
11
|
+
function startActivity(className) {
|
|
12
|
+
cordova.exec(function() {console.log("Success");}, function(e) {console.log("Error: "+e);}, "Activity", "start", [className]);
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
localStorage.lifecyclestatus = "";
|
|
16
|
+
localStorage.backgroundstatus = "";
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
</head>
|
|
20
|
+
<body onload="init();" id="stage" class="theme">
|
|
21
|
+
<h1>Cordova Android Tests</h1>
|
|
22
|
+
<div id="info">
|
|
23
|
+
<h4>Platform: <span id="platform"> </span>, Version: <span id="version"> </span></h4>
|
|
24
|
+
<h4>UUID: <span id="uuid"> </span>, Name: <span id="name"> </span></h4>
|
|
25
|
+
<h4>Width: <span id="width"> </span>, Height: <span id="height">
|
|
26
|
+
</span>, Color Depth: <span id="colorDepth"></span></h4>
|
|
27
|
+
<h4>Cordova Version: <span id="cordova"> </span></h4>
|
|
28
|
+
</div>
|
|
29
|
+
<div id="info">
|
|
30
|
+
<h4>Run each of the tests below:</h4>
|
|
31
|
+
</div>
|
|
32
|
+
<button class="btn large" onclick="startActivity('org.apache.cordova.test.jqmtabbackbutton');">Backbutton jQM tab</button>
|
|
33
|
+
<button class="btn large" onclick="startActivity('org.apache.cordova.test.backbuttonmultipage');">Backbutton with multiple pages</button>
|
|
34
|
+
<button class="btn large" onclick="startActivity('org.apache.cordova.test.errorurl');">Error URL</button>
|
|
35
|
+
<button class="btn large" onclick="startActivity('org.apache.cordova.test.htmlnotfound');">HTML not found</button>
|
|
36
|
+
<button class="btn large" onclick="startActivity('org.apache.cordova.test.iframe');">IFrame</button>
|
|
37
|
+
<button class="btn large" onclick="startActivity('org.apache.cordova.test.lifecycle');">Lifecycle</button>
|
|
38
|
+
<button class="btn large" onclick="startActivity('org.apache.cordova.test.loading');">Loading indicator</button>
|
|
39
|
+
<button class="btn large" onclick="startActivity('org.apache.cordova.test.menus');">Menus</button>
|
|
40
|
+
<button class="btn large" onclick="startActivity('org.apache.cordova.test.background');">No multitasking</button>
|
|
41
|
+
<button class="btn large" onclick="startActivity('org.apache.cordova.test.splashscreen');">Splash screen</button>
|
|
42
|
+
<button class="btn large" onclick="startActivity('org.apache.cordova.test.timeout');">Load timeout</button>
|
|
43
|
+
<button class="btn large" onclick="startActivity('org.apache.cordova.test.userwebview');">User WebView/Client/Chrome</button>
|
|
44
|
+
<button class="btn large" onclick="startActivity('org.apache.cordova.test.whitelist');">Whitelist</button>
|
|
45
|
+
<button class="btn large" onclick="startActivity('org.apache.cordova.test.xhr');">XHR</button>
|
|
46
|
+
</body>
|
|
47
|
+
</html>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<html>
|
|
2
|
+
<head>
|
|
3
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
4
|
+
<title>Backbutton</title>
|
|
5
|
+
|
|
6
|
+
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" />
|
|
7
|
+
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
|
|
8
|
+
<script src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js"></script>
|
|
9
|
+
<script type="text/javascript" src="../cordova.js"></script>
|
|
10
|
+
|
|
11
|
+
<script>
|
|
12
|
+
document.addEventListener("deviceready", onDeviceReady, false);
|
|
13
|
+
|
|
14
|
+
// Without backbutton handler, each tab loaded will be popped off history until history is empty, then it will exit app.
|
|
15
|
+
function handleBackButton() {
|
|
16
|
+
alert("Back Button Pressed! - exiting app");
|
|
17
|
+
navigator.app.exitApp();
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function onDeviceReady() {
|
|
21
|
+
console.log("onDeviceReady()");
|
|
22
|
+
document.addEventListener("backbutton", handleBackButton, false);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
</script>
|
|
27
|
+
</head>
|
|
28
|
+
<body>
|
|
29
|
+
<div data-role="page" id="tabTab">
|
|
30
|
+
<div data-role="header">
|
|
31
|
+
<h1>Main</h1>
|
|
32
|
+
</div>
|
|
33
|
+
<div data-role="content" id="tabContent">
|
|
34
|
+
To test, press several tabs.<br>
|
|
35
|
+
The "backbutton" can be pressed any time to exit app.
|
|
36
|
+
</div>
|
|
37
|
+
<div data-role="footer" data-position="fixed">
|
|
38
|
+
<div data-role="navbar">
|
|
39
|
+
<ul>
|
|
40
|
+
<li><a href="tab1.html" data-transition="none">Tab 1</a>
|
|
41
|
+
</li>
|
|
42
|
+
<li><a href="tab2.html" data-transition="none">Tab 2</a>
|
|
43
|
+
</li>
|
|
44
|
+
<li><a href="tab3.html" data-transition="none">Tab 3</a>
|
|
45
|
+
</li>
|
|
46
|
+
</ul>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<html>
|
|
2
|
+
<head>
|
|
3
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
4
|
+
<title>Tab 1</title>
|
|
5
|
+
|
|
6
|
+
</head>
|
|
7
|
+
<body>
|
|
8
|
+
<div data-role="page" id="tab1Tab">
|
|
9
|
+
<div data-role="header">
|
|
10
|
+
<h1>Tab 1</h1>
|
|
11
|
+
</div>
|
|
12
|
+
<div data-role="content" id="tab1Content">
|
|
13
|
+
Tab 1 content.
|
|
14
|
+
</div>
|
|
15
|
+
<div data-role="footer" data-position="fixed">
|
|
16
|
+
<div data-role="navbar">
|
|
17
|
+
<ul>
|
|
18
|
+
<li><a href="tab1.html" data-transition="none">Tab 1</a>
|
|
19
|
+
</li>
|
|
20
|
+
<li><a href="tab2.html" data-transition="none">Tab 2</a>
|
|
21
|
+
</li>
|
|
22
|
+
<li><a href="tab3.html" data-transition="none">Tab 3</a>
|
|
23
|
+
</li>
|
|
24
|
+
</ul>
|
|
25
|
+
</div>
|
|
26
|
+
<!-- /navbar -->
|
|
27
|
+
</div>
|
|
28
|
+
<!-- /footer -->
|
|
29
|
+
</div>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<html>
|
|
2
|
+
<head>
|
|
3
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
4
|
+
<title>Tab 2</title>
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
</head>
|
|
8
|
+
<body>
|
|
9
|
+
<div data-role="page" id="tab2Tab">
|
|
10
|
+
<div data-role="header">
|
|
11
|
+
<h1>Tab 2</h1>
|
|
12
|
+
</div>
|
|
13
|
+
<div data-role="content" id="tab2Content">
|
|
14
|
+
Tab 2 content.
|
|
15
|
+
</div>
|
|
16
|
+
<div data-role="footer" data-position="fixed">
|
|
17
|
+
<div data-role="navbar">
|
|
18
|
+
<ul>
|
|
19
|
+
<li><a href="tab1.html" data-transition="none">Tab 1</a>
|
|
20
|
+
</li>
|
|
21
|
+
<li><a href="tab2.html" data-transition="none">Tab 2</a>
|
|
22
|
+
</li>
|
|
23
|
+
<li><a href="tab3.html" data-transition="none">Tab 3</a>
|
|
24
|
+
</li>
|
|
25
|
+
</ul>
|
|
26
|
+
</div>
|
|
27
|
+
<!-- /navbar -->
|
|
28
|
+
</div>
|
|
29
|
+
<!-- /footer -->
|
|
30
|
+
</div>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<html>
|
|
2
|
+
<head>
|
|
3
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
4
|
+
<title>Tab 3</title>
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
</head>
|
|
8
|
+
<body>
|
|
9
|
+
<div data-role="page" id="tab3Tab">
|
|
10
|
+
<div data-role="header">
|
|
11
|
+
<h1>Tab 3</h1>
|
|
12
|
+
</div>
|
|
13
|
+
<div data-role="content" id="tab3Content">
|
|
14
|
+
Tab 3 content.
|
|
15
|
+
</div>
|
|
16
|
+
<div data-role="footer" data-position="fixed">
|
|
17
|
+
<div data-role="navbar">
|
|
18
|
+
<ul>
|
|
19
|
+
<li><a href="tab1.html" data-transition="none">Tab 1</a>
|
|
20
|
+
</li>
|
|
21
|
+
<li><a href="tab2.html" data-transition="none">Tab 2</a>
|
|
22
|
+
</li>
|
|
23
|
+
<li><a href="tab3.html" data-transition="none">Tab 3</a>
|
|
24
|
+
</li>
|
|
25
|
+
</ul>
|
|
26
|
+
</div>
|
|
27
|
+
<!-- /navbar -->
|
|
28
|
+
</div>
|
|
29
|
+
<!-- /footer -->
|
|
30
|
+
</div>
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
<!DOCTYPE HTML>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<head>
|
|
5
|
+
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
|
6
|
+
<title>Lifecycle Page 1</title>
|
|
7
|
+
<link rel="stylesheet" href="../master.css" type="text/css" media="screen" title="no title">
|
|
8
|
+
<script type="text/javascript" charset="utf-8" src="../cordova.js"></script>
|
|
9
|
+
|
|
10
|
+
<script type="text/javascript" charset="utf-8">
|
|
11
|
+
|
|
12
|
+
function onLoad() {
|
|
13
|
+
console.log("Page1: onload");
|
|
14
|
+
log("Page1: onload @ " + new Date().toLocaleTimeString());
|
|
15
|
+
document.addEventListener("deviceready", onDeviceReady, false);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function onUnLoaded() {
|
|
19
|
+
console.log("Page1: onunload");
|
|
20
|
+
log("Page1: onunload @ " + new Date().toLocaleTimeString());
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function onDeviceReady() {
|
|
24
|
+
// Register the event listener
|
|
25
|
+
document.getElementById("platform").innerHTML = device.platform;
|
|
26
|
+
document.getElementById("version").innerHTML = device.version;
|
|
27
|
+
document.getElementById("uuid").innerHTML = device.uuid;
|
|
28
|
+
document.getElementById("name").innerHTML = device.name;
|
|
29
|
+
document.getElementById("width").innerHTML = screen.width;
|
|
30
|
+
document.getElementById("height").innerHTML = screen.height;
|
|
31
|
+
document.getElementById("colorDepth").innerHTML = screen.colorDepth;
|
|
32
|
+
|
|
33
|
+
document.addEventListener("pause", onPause, false);
|
|
34
|
+
document.addEventListener("resume", onResume, false);
|
|
35
|
+
|
|
36
|
+
window.setInterval(function() {
|
|
37
|
+
log("Page1: Running");
|
|
38
|
+
}, 2000);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function onPause() {
|
|
42
|
+
console.log("Page1: onpause");
|
|
43
|
+
log("Page1: onpause @ " + new Date().toLocaleTimeString());
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function onResume() {
|
|
47
|
+
console.log("Page1: onresume");
|
|
48
|
+
log("Page1: onresume @ " + new Date().toLocaleTimeString());
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function log(s) {
|
|
52
|
+
var el = document.getElementById('status');
|
|
53
|
+
var status = el.innerHTML + s + "<br>";
|
|
54
|
+
el.innerHTML = status;
|
|
55
|
+
localStorage.lifecyclestatus = status;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function clearStatus() {
|
|
59
|
+
console.log("clear()");
|
|
60
|
+
localStorage.lifecyclestatus = "";
|
|
61
|
+
document.getElementById('status').innerHTML = "";
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
</script>
|
|
65
|
+
</head>
|
|
66
|
+
<body onload="onLoad()" onunload="onUnLoaded()" id="stage" class="theme">
|
|
67
|
+
<h1>Events</h1>
|
|
68
|
+
<div id="info">
|
|
69
|
+
<h4>
|
|
70
|
+
Platform: <span id="platform"> </span>, Version: <span
|
|
71
|
+
id="version"> </span>
|
|
72
|
+
</h4>
|
|
73
|
+
<h4>
|
|
74
|
+
UUID: <span id="uuid"> </span>, Name: <span id="name"> </span>
|
|
75
|
+
</h4>
|
|
76
|
+
<h4>
|
|
77
|
+
Width: <span id="width"> </span>, Height: <span id="height">
|
|
78
|
+
</span>, Color Depth: <span id="colorDepth"></span>
|
|
79
|
+
</h4>
|
|
80
|
+
</div>
|
|
81
|
+
<div id="info">
|
|
82
|
+
<h4>Test 1</h4>
|
|
83
|
+
Press "Home" button, then return to this app to see pause/resume.<br>
|
|
84
|
+
There should be "Running" entries between pause and resume since app continues to run in the background.
|
|
85
|
+
<h4>Test 2</h4>
|
|
86
|
+
Press "Load new page" button to load a new Cordova page.<br>
|
|
87
|
+
When returning, you should see
|
|
88
|
+
<ul>
|
|
89
|
+
<li>Page2: onunload</li>
|
|
90
|
+
<li>Page1: onload</li>
|
|
91
|
+
<li>Page1: Running</li>
|
|
92
|
+
</ul>
|
|
93
|
+
</div>
|
|
94
|
+
<div id="info">
|
|
95
|
+
<h4>Info for event testing:</h4>
|
|
96
|
+
<div id="status"></div>
|
|
97
|
+
</div>
|
|
98
|
+
|
|
99
|
+
<a href="index2.html" class="btn large" >Load new page</a>
|
|
100
|
+
<a href="javascript:" class="btn large" onclick="clearStatus();">Clear status</a>
|
|
101
|
+
|
|
102
|
+
<script>
|
|
103
|
+
document.getElementById('status').innerHTML = localStorage.lifecyclestatus;
|
|
104
|
+
</script>
|
|
105
|
+
</body>
|
|
106
|
+
</html>
|
|
107
|
+
|
|
108
|
+
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
<!DOCTYPE HTML>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<head>
|
|
5
|
+
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
|
6
|
+
<title>Lifecycle Page 2</title>
|
|
7
|
+
<link rel="stylesheet" href="../master.css" type="text/css" media="screen" title="no title">
|
|
8
|
+
<script type="text/javascript" charset="utf-8" src="../cordova.js"></script>
|
|
9
|
+
|
|
10
|
+
<script type="text/javascript" charset="utf-8">
|
|
11
|
+
|
|
12
|
+
function onLoad() {
|
|
13
|
+
console.log("Page2: onload");
|
|
14
|
+
log("Page2: onload @ " + new Date().toLocaleTimeString());
|
|
15
|
+
document.addEventListener("deviceready", onDeviceReady, false);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function onUnLoaded() {
|
|
19
|
+
console.log("Page2: onunload");
|
|
20
|
+
log("Page2: onunload @ " + new Date().toLocaleTimeString());
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function onDeviceReady() {
|
|
24
|
+
// Register the event listener
|
|
25
|
+
document.getElementById("platform").innerHTML = device.platform;
|
|
26
|
+
document.getElementById("version").innerHTML = device.version;
|
|
27
|
+
document.getElementById("uuid").innerHTML = device.uuid;
|
|
28
|
+
document.getElementById("name").innerHTML = device.name;
|
|
29
|
+
document.getElementById("width").innerHTML = screen.width;
|
|
30
|
+
document.getElementById("height").innerHTML = screen.height;
|
|
31
|
+
document.getElementById("colorDepth").innerHTML = screen.colorDepth;
|
|
32
|
+
|
|
33
|
+
document.addEventListener("pause", onPause, false);
|
|
34
|
+
document.addEventListener("resume", onResume, false);
|
|
35
|
+
|
|
36
|
+
window.setInterval(function() {
|
|
37
|
+
log("Page2: Running");
|
|
38
|
+
}, 2000);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function onPause() {
|
|
42
|
+
console.log("Page2: onpause");
|
|
43
|
+
log("Page2: onpause @ " + new Date().toLocaleTimeString());
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function onResume() {
|
|
47
|
+
console.log("Page2: onresume");
|
|
48
|
+
log("Page2: onresume @ " + new Date().toLocaleTimeString());
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function log(s) {
|
|
52
|
+
var el = document.getElementById('status');
|
|
53
|
+
var status = el.innerHTML + s + "<br>";
|
|
54
|
+
el.innerHTML = status;
|
|
55
|
+
localStorage.lifecyclestatus = status;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function clearStatus() {
|
|
59
|
+
console.log("clear()");
|
|
60
|
+
localStorage.lifecyclestatus = "";
|
|
61
|
+
document.getElementById('status').innerHTML = "";
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
</script>
|
|
65
|
+
</head>
|
|
66
|
+
<body onload="onLoad()" onunload="onUnLoaded()" id="stage" class="theme">
|
|
67
|
+
<h1>Events</h1>
|
|
68
|
+
<div id="info">
|
|
69
|
+
<h4>
|
|
70
|
+
Platform: <span id="platform"> </span>, Version: <span
|
|
71
|
+
id="version"> </span>
|
|
72
|
+
</h4>
|
|
73
|
+
<h4>
|
|
74
|
+
UUID: <span id="uuid"> </span>, Name: <span id="name"> </span>
|
|
75
|
+
</h4>
|
|
76
|
+
<h4>
|
|
77
|
+
Width: <span id="width"> </span>, Height: <span id="height">
|
|
78
|
+
</span>, Color Depth: <span id="colorDepth"></span>
|
|
79
|
+
</h4>
|
|
80
|
+
</div>
|
|
81
|
+
<div id="info">
|
|
82
|
+
You should see<br>
|
|
83
|
+
<ul>
|
|
84
|
+
<li>Page1: onunload</li>
|
|
85
|
+
<li>Page2: onload</li>
|
|
86
|
+
<li>Page2: Running</li>
|
|
87
|
+
</ul>
|
|
88
|
+
Press "backbutton" to return to Page 1.
|
|
89
|
+
</div>
|
|
90
|
+
<div id="info">
|
|
91
|
+
<h4>Info for event testing:</h4>
|
|
92
|
+
<div id="status"></div>
|
|
93
|
+
</div>
|
|
94
|
+
|
|
95
|
+
<a href="index.html" class="btn large" >Load new page</a>
|
|
96
|
+
<a href="javascript:" class="btn large" onclick="clearStatus();">Clear status</a>
|
|
97
|
+
|
|
98
|
+
<script>
|
|
99
|
+
document.getElementById('status').innerHTML = localStorage.lifecyclestatus;
|
|
100
|
+
</script>
|
|
101
|
+
</body>
|
|
102
|
+
</html>
|
|
103
|
+
|
|
104
|
+
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
var deviceInfo = function() {
|
|
2
|
+
document.getElementById("platform").innerHTML = device.platform;
|
|
3
|
+
document.getElementById("version").innerHTML = device.version;
|
|
4
|
+
document.getElementById("uuid").innerHTML = device.uuid;
|
|
5
|
+
document.getElementById("name").innerHTML = device.name;
|
|
6
|
+
document.getElementById("width").innerHTML = screen.width;
|
|
7
|
+
document.getElementById("height").innerHTML = screen.height;
|
|
8
|
+
document.getElementById("colorDepth").innerHTML = screen.colorDepth;
|
|
9
|
+
var el = document.getElementById("cordova");
|
|
10
|
+
if (el) {
|
|
11
|
+
el.innerHTML = device.cordova;
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
var getLocation = function() {
|
|
16
|
+
var suc = function(p) {
|
|
17
|
+
alert(p.coords.latitude + " " + p.coords.longitude);
|
|
18
|
+
};
|
|
19
|
+
var locFail = function() {
|
|
20
|
+
};
|
|
21
|
+
navigator.geolocation.getCurrentPosition(suc, locFail);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
var beep = function() {
|
|
25
|
+
navigator.notification.beep(2);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
var vibrate = function() {
|
|
29
|
+
navigator.notification.vibrate(0);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
function roundNumber(num) {
|
|
33
|
+
var dec = 3;
|
|
34
|
+
var result = Math.round(num * Math.pow(10, dec)) / Math.pow(10, dec);
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
var accelerationWatch = null;
|
|
39
|
+
|
|
40
|
+
function updateAcceleration(a) {
|
|
41
|
+
document.getElementById('x').innerHTML = roundNumber(a.x);
|
|
42
|
+
document.getElementById('y').innerHTML = roundNumber(a.y);
|
|
43
|
+
document.getElementById('z').innerHTML = roundNumber(a.z);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
var toggleAccel = function() {
|
|
47
|
+
if (accelerationWatch !== null) {
|
|
48
|
+
navigator.accelerometer.clearWatch(accelerationWatch);
|
|
49
|
+
updateAcceleration({
|
|
50
|
+
x : "",
|
|
51
|
+
y : "",
|
|
52
|
+
z : ""
|
|
53
|
+
});
|
|
54
|
+
accelerationWatch = null;
|
|
55
|
+
} else {
|
|
56
|
+
var options = {};
|
|
57
|
+
options.frequency = 1000;
|
|
58
|
+
accelerationWatch = navigator.accelerometer.watchAcceleration(
|
|
59
|
+
updateAcceleration, function(ex) {
|
|
60
|
+
alert("accel fail (" + ex.name + ": " + ex.message + ")");
|
|
61
|
+
}, options);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
var preventBehavior = function(e) {
|
|
66
|
+
e.preventDefault();
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
function dump_pic(data) {
|
|
70
|
+
var viewport = document.getElementById('viewport');
|
|
71
|
+
console.log(data);
|
|
72
|
+
viewport.style.display = "";
|
|
73
|
+
viewport.style.position = "absolute";
|
|
74
|
+
viewport.style.top = "10px";
|
|
75
|
+
viewport.style.left = "10px";
|
|
76
|
+
document.getElementById("test_img").src = "data:image/jpeg;base64," + data;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function fail(msg) {
|
|
80
|
+
alert(msg);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function show_pic() {
|
|
84
|
+
navigator.camera.getPicture(dump_pic, fail, {
|
|
85
|
+
quality : 50
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function close() {
|
|
90
|
+
var viewport = document.getElementById('viewport');
|
|
91
|
+
viewport.style.position = "relative";
|
|
92
|
+
viewport.style.display = "none";
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
function contacts_success(contacts) {
|
|
96
|
+
alert(contacts.length
|
|
97
|
+
+ ' contacts returned.'
|
|
98
|
+
+ (contacts[2] && contacts[2].name ? (' Third contact is ' + contacts[2].name.formatted)
|
|
99
|
+
: ''));
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
function get_contacts() {
|
|
103
|
+
var obj = new ContactFindOptions();
|
|
104
|
+
obj.filter = "";
|
|
105
|
+
obj.multiple = true;
|
|
106
|
+
navigator.contacts.find(
|
|
107
|
+
[ "displayName", "name" ], contacts_success,
|
|
108
|
+
fail, obj);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function check_network() {
|
|
112
|
+
var networkState = navigator.network.connection.type;
|
|
113
|
+
|
|
114
|
+
var states = {};
|
|
115
|
+
states[Connection.UNKNOWN] = 'Unknown connection';
|
|
116
|
+
states[Connection.ETHERNET] = 'Ethernet connection';
|
|
117
|
+
states[Connection.WIFI] = 'WiFi connection';
|
|
118
|
+
states[Connection.CELL_2G] = 'Cell 2G connection';
|
|
119
|
+
states[Connection.CELL_3G] = 'Cell 3G connection';
|
|
120
|
+
states[Connection.CELL_4G] = 'Cell 4G connection';
|
|
121
|
+
states[Connection.NONE] = 'No network connection';
|
|
122
|
+
|
|
123
|
+
confirm('Connection type:\n ' + states[networkState]);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
var watchID = null;
|
|
127
|
+
|
|
128
|
+
function updateHeading(h) {
|
|
129
|
+
document.getElementById('h').innerHTML = h.magneticHeading;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
function toggleCompass() {
|
|
133
|
+
if (watchID !== null) {
|
|
134
|
+
navigator.compass.clearWatch(watchID);
|
|
135
|
+
watchID = null;
|
|
136
|
+
updateHeading({ magneticHeading : "Off"});
|
|
137
|
+
} else {
|
|
138
|
+
var options = { frequency: 1000 };
|
|
139
|
+
watchID = navigator.compass.watchHeading(updateHeading, function(e) {
|
|
140
|
+
alert('Compass Error: ' + e.code);
|
|
141
|
+
}, options);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
function init() {
|
|
146
|
+
// the next line makes it impossible to see Contacts on the HTC Evo since it
|
|
147
|
+
// doesn't have a scroll button
|
|
148
|
+
// document.addEventListener("touchmove", preventBehavior, false);
|
|
149
|
+
document.addEventListener("deviceready", deviceInfo, true);
|
|
150
|
+
}
|