mirror of
https://github.com/purplecabbage/phonegap-plugins.git
synced 2026-01-14 08:57:53 -05:00
114 lines
3.9 KiB
HTML
Executable File
114 lines
3.9 KiB
HTML
Executable File
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
|
<html>
|
|
<head>
|
|
<!-- Change this if you want to allow scaling -->
|
|
<meta name="viewport" content="width=default-width; user-scalable=no" />
|
|
|
|
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
|
|
|
<title>PhoneGapWithUAPush</title>
|
|
|
|
<!-- iPad/iPhone specific css below, add after your main css >
|
|
<link rel="stylesheet" media="only screen and (max-device-width: 1024px)" href="ipad.css" type="text/css" />
|
|
<link rel="stylesheet" media="only screen and (max-device-width: 480px)" href="iphone.css" type="text/css" />
|
|
-->
|
|
<script type="text/javascript" charset="utf-8" src="phonegap-1.0.0.js"></script>
|
|
<script type="text/javascript" charset="utf-8" src="PushNotification.js"></script>
|
|
<script type="text/javascript" charset="utf-8">
|
|
|
|
// If you want to prevent dragging, uncomment this section
|
|
/*
|
|
function preventBehavior(e) {
|
|
e.preventDefault();
|
|
};
|
|
document.addEventListener("touchmove", preventBehavior, false);
|
|
*/
|
|
|
|
function onBodyLoad() {
|
|
document.addEventListener("deviceready",onDeviceReady,false);
|
|
}
|
|
|
|
/* When this function is called, PhoneGap has been initialized and is ready to roll */
|
|
function onDeviceReady() {
|
|
registerAPN()
|
|
}
|
|
|
|
/**
|
|
* Customize following callbacks in your application
|
|
*/
|
|
|
|
// Customized callback for receiving notification
|
|
PushNotification.prototype.notificationCallback = function (notification) {
|
|
var msg = '';
|
|
for (var property in notification) {
|
|
msg += property + ' : ' + notification[property] + '<br>';
|
|
}
|
|
message.innerHTML='notification received:<br><br>' + msg;
|
|
|
|
alert(notification['alert']);
|
|
|
|
};
|
|
|
|
// when APN register succeeded
|
|
function successCallback(e) {
|
|
result.innerHTML="Device registered. Device token:<br>" + e.deviceToken + '<br><br>';
|
|
registerUAPush(e.deviceToken, e.host, e.appKey, e.appSecret);
|
|
}
|
|
|
|
// when APN register failed
|
|
function errorCallback(e) {
|
|
result.innerHTML='Error during registration: '+e.error;
|
|
registerButton.disabled=false;
|
|
}
|
|
|
|
// register button action
|
|
function registerAPN() {
|
|
|
|
registerButton.disabled=true;
|
|
result.innerHTML='Registering...';
|
|
|
|
window.plugins.pushNotification.register(successCallback, errorCallback, [{ alert:true, badge:true, sound:true }]);
|
|
|
|
//or unregister
|
|
//navigator.pushNotification.register();
|
|
}
|
|
|
|
// register urban airship push service after APN is registered successfully
|
|
function registerUAPush(deviceToken, host, appKey, appSecret) {
|
|
|
|
var resultStr = result.innerHTML;
|
|
result.innerHTML += 'Registering with Urban Airship Push Service...';
|
|
|
|
var request = new XMLHttpRequest();
|
|
|
|
// open the client and encode our URL
|
|
request.open('PUT', host+'api/device_tokens/'+deviceToken, true, appKey, appSecret);
|
|
|
|
// callback when request finished
|
|
request.onload = function() {
|
|
result.innerHTML = resultStr + 'Status: ' + this.status + '<br>';
|
|
|
|
if(this.status == 200 || this.status == 201) {
|
|
// register UA push success
|
|
result.innerHTML = result.innerHTML + 'UA push service successfully registered.';
|
|
} else {
|
|
// error
|
|
result.innerHTML = result.innerHTML + 'Error when registering UA push service.<br>error: '+this.statusText;
|
|
}
|
|
|
|
// for demo, you can re-register again
|
|
registerButton.disabled=false;
|
|
};
|
|
|
|
request.send();
|
|
}
|
|
|
|
</script>
|
|
</head>
|
|
|
|
<body onload="onBodyLoad()">
|
|
<p id="result"></p>
|
|
<p id="message"></p>
|
|
</body>
|
|
</html>
|