Phonegap is a framework which lets you create mobile apps for many platforms by just using HTML5 CSS and Javascript. These won't be as fast as native apps, but it makes developing faster.. I don't want to talk about Phonegap advantages and disadvantages here.
In my mobile applicatin I use alerts and confirmations windows many times.
Ripple - chrome extension that lets you emulate Phonegap someway doesn't provide confirmation windows (as far as I know) so I had to write my own fallback code for using native phonegap notifications on phone and html based notifications. For the second, I've used a great project angular-ui bootstrap which has a dialogs built in.
The code is a AngularJS service. I won't write here how AngularJS is great and awesome. Just look at the website and find yourself using this great framework. I think that Angular service is the right place to put this into work.
I should also mention that I am using a great angular-phonegap-notification.
My intention was to make my service work similar to Phonegap notification API.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
econtainersApp.factory("NotificationService", function ($dialog, notification) { | |
return { | |
showAlert: function (message, alertCallback, title, buttonName) { | |
if (navigator.notification) { | |
notification.alert(message, alertCallback, title, buttonName) | |
} else { | |
var buttonName = (typeof buttonName === "undefined") ? "Ok" : buttonName; | |
var msgbox = $dialog.messageBox(title, message, [{ | |
label: buttonName | |
} | |
]) | |
msgbox.open() | |
.then(function (result) { | |
if (alertCallback) { | |
alertCallback() | |
}; | |
}); | |
} | |
}, | |
showConfirm: function (message, confirmCallback, title, buttonLabels) { | |
if (navigator.notification) { | |
notification.confirm(message, confirmCallback, title, buttonLabels) | |
} else { | |
var buttonLabels = (typeof buttonLabels === "undefined") ? ["Ok", "Cancel"] : buttonLabels; | |
var msgbox = $dialog.messageBox(title, message, (function () { | |
var buttons = []; | |
var result = 1; | |
angular.forEach(buttonLabels, function (value) { | |
buttons.push({ | |
label: value, | |
result: result | |
}); | |
result = result + 1; | |
}); | |
return buttons; | |
})()) | |
msgbox.open() | |
.then(function (result) { | |
confirmCallback(result); | |
}) | |
} | |
} | |
} | |
}) |