Wecker Web-App mit HTML5/JavaScript programmieren?
Hallo zusammen,
ich würde gerne mal wissen, wie man mit JavaScript eine Web-App programmiert (web-app, weil ich mit Web-Entwicklung schon etwas Erfahrung habe), welche eine Weckerfunktion hat.
Mein größtes Problem ist, dass ich überhaupt keine Ahnung habe, wie die Website einen Ton abspielen soll, wenn sie nicht geöffnet ist/das Handy aus ist... Ich gehe aber mal davon aus, dass es dafür eine Möglichkeit gibt - kann ja nicht so kompliziert sein, oder? ^^
Vielen Dank schon mal für eure Antworten!
3 Antworten
Geht schon!
Das ganze hat einen Haken: Die App muss 24/7 laufen. Sobald eine WebApp in den Hintergrund geklickt wird, wird sie geschlossen oder zumindest angehalten. Dann versagt der Wecker.
JavaScript etwa so:
Wenn eingeschaltet, guckt er solange halt alle Sekunde, bis der Klingelzeitpunkt erreicht ist. Mit Funktionen zum ein- und ausschalten. Musst halt noch mit HTML und CSS ne GUI draufbauen.
var audio = new Audio();
var reminderDate = 12345678 //Timestate des Zeitpunktes, wo es klingeln soll
var reminderIsOn = false;
var reminderTimeout = null;
function loop() {
var now = (new Date()).getTime();
if (now >= reminderDate) {
audio.src = "blubb.mp3";
audio.load();
audio.play(); //rrrrring..........
} else if (reminderIsOn) {
reminderTimeout = setTimeout(loop, 1000);
}
}
function startReminder() {
if (!reminderIsOn) {
reminderIsOn = true;
loop();
}
}
function stopReminder() {
reminderIsOn = false;
if (reminderTimeout) clearTimeout(reminderTimeout);
reminderTimeout = null;
}
Das geht nicht mit einer WebApp. Entweder du bettest sie in eine native App ein (nennt sich dann Hybrid-App) oder du erstellst eine native. Es muss auf jeden Fall als Service unter Android laufen. Das ist das Problem, da ein normale Websites nicht einfach einen Service starten dürfen.
Das geht nicht. Wäre Sicherheitstechnisch auch ne Katastrophe wenn das ginge!
Ah ok, hatte im Nachhinein auch leichte Zweifel bekommen ^^
Geht das denn mit einer nativen App oder nur den vorinstallierten?
Gibt es noch andere/ähnliche Möglichkeiten? Hast du eine Idee, wie ich so etwas auf andere Art und Weise umsetzen kann?
Danke dir!