• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

WebApp und Multitasking

xxxStream

Elstar
Registriert
01.03.08
Beiträge
73
n'Abend,

ich bin gerade dabei, eine Webanwendung für's iPad zu optimieren, später soll diese dann auch auf dem iPhone laufen (natürlich mit angepasstem Design). Ich bin nun soweit, dass die App vom Homescreen aus gestartet und Fullscreen ausgeführt wird. Aber: iOS hat ja nun Multitasking. Wieso ist es nicht möglich, per Home-Doppelklick in eine andere Anwendung zu wechseln und an den Punkt zurückzukehren, an dem man in der WebApp vorher war?! Das ist ein absolutes Killerfeature. Sobald ich wieder zurückkehre, muss ich mich neu anmelden, so ist die WebApp absolut nicht nutzbar.

Das es nach einer gewissen Zeit nötig ist, ist okay. Aber ständig...

Gibt es irgendeine Möglichkeit, das zu umgehen und die WebApp da zu starten, wo sie verlassen wurde? Es muss ja nichtmal ein reload erfolgen, ich wäre schon mit der Anzeige des letzten Punktes zufrieden.
 

gKar

Maunzenapfel
Registriert
25.06.08
Beiträge
5.362
Eine Webanwendung ist doch eine auf einem Webserver laufende und über Webseiten mit einem Browser (z.B. Safari auf dem iPad) bediente Anwendung. Das AT-Forum ist auch eine Webapp. Und wenn ich auf meinem iPhone zu Safari zurückwechsle, muss ich mich auch in den offenen Seiten nicht erneut einloggen, so lange die Session der Webanwendung noch nicht abgelaufen ist.

Oder baust Du eine iOS-App? Die „hat“ nicht einfach automatisch „Multitasking“. Da musst Du Dich schonmal informieren, welche sog. Multitasking-Features das iOS bietet und wie man sie nutzt. Per Default wird m.W. jede App automatisch beendet, sobald man sie verlässt. Es sei denn, man nutzt eben eines der Features wie z.B. das Einfrieren des Appzustands.
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Speicher den Status der App lokal und rufe den Status beim Start der Anwendung wieder ab (geht mit HTML5 und lokalen Datenbanken).

Ist die App für den Onlinebetrieb konzipiert, kannst Du das auch über Sessions machen.
 

xxxStream

Elstar
Registriert
01.03.08
Beiträge
73
Eine Webanwendung ist doch eine auf einem Webserver laufende und über Webseiten mit einem Browser (z.B. Safari auf dem iPad) bediente Anwendung. Das AT-Forum ist auch eine Webapp. Und wenn ich auf meinem iPhone zu Safari zurückwechsle, muss ich mich auch in den offenen Seiten nicht erneut einloggen, so lange die Session der Webanwendung noch nicht abgelaufen ist.

Nein. Eine WebApp ist zwar grundsätzlich eine Webseite, allerdings muss diese vom Homescreen des iOS-Devices gestartet werden. Diese Apps laufen dann Fullscreen wie "normale" iOS-Apps. Mit dem Problem, dass diese Apps beim aufrufen IMMER (egal ob vom Homescreen oder aus dem Multitasking-Menu) zur Startseite navigieren.


Oder baust Du eine iOS-App? Die „hat“ nicht einfach automatisch „Multitasking“. Da musst Du Dich schonmal informieren, welche sog. Multitasking-Features das iOS bietet und wie man sie nutzt. Per Default wird m.W. jede App automatisch beendet, sobald man sie verlässt. Es sei denn, man nutzt eben eines der Features wie z.B. das Einfrieren des Appzustands.

Nein, eine iOS-App baue ich nicht. Das ist mir für den Zweck aktuell zu viel Aufwand. Vielleicht später mal.... ;)


Speicher den Status der App lokal und rufe den Status beim Start der Anwendung wieder ab (geht mit HTML5 und lokalen Datenbanken).

Ist die App für den Onlinebetrieb konzipiert, kannst Du das auch über Sessions machen.


Danke, das ist was ich gesucht habe... bin ich heute morgen aber sogar selbst draufgekommen...^^ Manchmal sollte man doch etwas länger über ein Problem nachdenken, bevor man frägt... ;)
 

gKar

Maunzenapfel
Registriert
25.06.08
Beiträge
5.362
Nein. Eine WebApp ist zwar grundsätzlich eine Webseite, allerdings muss diese vom Homescreen des iOS-Devices gestartet werden.

Verstehe ich nicht. (Der Begriff der Webapp(likation) ist übrigens älter als das iPhone und hat nichts mit dem iPhone-Homescreen zu tun.)

OK, aber auf dem iPhone-Homescreen kann ich bei mir zwei Arten von Einträgen ablegen: Echte iOS-Apps einerseits und Bookmarks für irgendwelche Webseiten andererseits. Letztere öffnen bei mir aber immer ein Tab in Safari und laufen nicht Full-Screen. Oder kann man das durch irgendwelche Metatags auf der jeweiligen Webseite auslösen?
Wenn ich jedenfalls den Homescreen-Link neu anklicke, wird tatsächlich die Seite jedes Mal neu geladen, was nicht passiert, wenn ich über den Taskswitcher einfach zu Safari zurückwechsle.
 

xxxStream

Elstar
Registriert
01.03.08
Beiträge
73
Verstehe ich nicht. (Der Begriff der Webapp(likation) ist übrigens älter als das iPhone und hat nichts mit dem iPhone-Homescreen zu tun.)

OK, aber auf dem iPhone-Homescreen kann ich bei mir zwei Arten von Einträgen ablegen: Echte iOS-Apps einerseits und Bookmarks für irgendwelche Webseiten andererseits. Letztere öffnen bei mir aber immer ein Tab in Safari und laufen nicht Full-Screen. Oder kann man das durch irgendwelche Metatags auf der jeweiligen Webseite auslösen?

Code:
<meta name="apple-mobile-web-app-capable" content="yes" />
...ist der Zaubertag. Damit läuft die "App" wie eine native App im Fullscreen-Modus. Und das hat dann mit Safari eben nichtmehr viel zu tun, da bleibt von der Oberfläche nichts mehr.


Wenn ich jedenfalls den Homescreen-Link neu anklicke, wird tatsächlich die Seite jedes Mal neu geladen, was nicht passiert, wenn ich über den Taskswitcher einfach zu Safari zurückwechsle.

Und genau das ist eben bei WebApps anders: Hier gelange ich bei BEIDEN Möglichkeiten wieder auf die Startseite. Ich versuche das jetzt mal mit Cookies und Sessions zu lösen...
 

drp

Jerseymac
Registriert
12.04.11
Beiträge
458
Du kannst auch noch mit
Code:
<link rel="apple-touch-icon-precomposed" href="icon.png"/>
ein Homescreen-Symbol machen, welches keinen Glanzeffekt bekommt (wenn der da sein soll einfach das -precomposed weglassen)
mit
Code:
<meta name="apple-touch-fullscreen" content="YES" />
halt Vollbild..
Code:
<meta name= "apple-mobile-web-app-capable" content = "yes" />
Und hiermit kannst du oben die Leise mit Uhrzeit und so anpassen (Black, White, Black-translucent (oder ähnlich))
Code:
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
Eine sehr tolle Funktion ist noch ein Bild, welches beim Laden angezeigt wird (muss 320x460 px groß sein!)
Code:
<link rel="apple-touch-startup-image" href="startup.png">
 
  • Like
Reaktionen: gKar

gKar

Maunzenapfel
Registriert
25.06.08
Beiträge
5.362
Auch wenn schon etwas off topic, eine sehr schöne Zusammenstellung.
Was noch ganz interessant wäre, ist eine Info, wie man einer Webseite eine Art CSS-Weiche für auf Handhelds wie iPhones von Desktop-Browsern abweichende CSS-Dateien erstellt. (Habe per Google gerade dies hier gefunden, habe aber meine Zweifel, ob so etwas wie
Code:
<link rel="stylesheet" media="only screen and (max-device-width: 480px)" href="iphone.css" type="text/css" />
z.B. auf Retina Displays mit höherern Auflösung noch funktioniert / sinnvoll ist.
 

Raziel1

Raisin Rouge
Registriert
24.10.09
Beiträge
1.175
Das Retina Display verhält sich wie das alte iPhone Display und muss deshalb nicht gesondert behandelt werden. Es lässt sich mit der gleichen Auflösung ansprechen, wie beim alten iPhone.
 

drp

Jerseymac
Registriert
12.04.11
Beiträge
458
Für das Startup-image allerdings nicht. Dafür müsste man für alle Geräte folgenden Code verwenden:
Code:
<link rel="apple-touch-startup-image" sizes="320x460" href="iPhone.png">
<link rel="apple-touch-startup-image" sizes="640x920" href="Retina.png">
<link rel="apple-touch-startup-image" sizes="1004x768" href="iPad.png">
So müssten alle iDevices in der WebApp ein Startup-Image haben.
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Das Retina Display verhält sich wie das alte iPhone Display und muss deshalb nicht gesondert behandelt werden. Es lässt sich mit der gleichen Auflösung ansprechen, wie beim alten iPhone.
Die Auflösung ist aber eine andere. Folglich können beim iPhone 4 auch höher auflösende UI-Elemente verwendet werden.
 

Raziel1

Raisin Rouge
Registriert
24.10.09
Beiträge
1.175
Wobei man uns mittgeteilt hat, das das iPhone wenn es um Safari geht, tortzdem die alte Auflösung nimmt und diese auch so umsetzt/hochrechent. Höher aufgelöste Inhalte spielen nur bei Apps etc eine Rolle
 

gKar

Maunzenapfel
Registriert
25.06.08
Beiträge
5.362
Auch mal eine interessante Seite, auch wenn es dort um eine CSS-Weiche geht, mit der man zwischen Retina-Display und niedriger aufgelösten Displays unterscheiden und unterschiedlich aufgelöste Grafikdateien laden kann. (Ist eigentlich m.E. nicht nötig, man könnte gleich die höher aufgelösten Grafiken nehmen, aber mit dieser Weiche erspart man ggf. denjenigen Nutzern mit geringer aufgelösten Displays etwas Bandbreite/Ladezeit.)

CSS nur für Retina laut dieser Demo-Seite:
Code:
media="only screen and (-webkit-min-device-pixel-ratio: 2)"

Screenshot: Foto.jpg
 

dominik.html

Idared
Registriert
27.04.11
Beiträge
24
@TO:

Hast du es jetzt hinbekommen, Multitasking mit JavaScript zu ermöglichen? Wenn ja, läuft es gut? Poste doch bitte deine Lösung, es würde mich interessieren.
 

drp

Jerseymac
Registriert
12.04.11
Beiträge
458
Passend zum Thema:
Bei mir wird sobald man die WebApp schließt die Session beendet. D.h. Man muss sich jedes mal beim Öffnen meiner WebApp neu einloggen.
Kann man das verhindern?? Im Webbrowser funktioniert es (Safari). Also da bleibt man auch eingeloggt.
Beendet iOS automatisch alle Sessions beim schließen einer WebApp??
 

dominik.html

Idared
Registriert
27.04.11
Beiträge
24
So wie ich es bisher mitbekommen habe: JA. Aber du könntest innerhalb deiner WebApp mit der HTML5-Technik LocalStorage Nutzername und Passwort des Nutzers speichern und beim Starten ein automatisches Login vornehmen. Da müsstest du das Vorhandensein der Daten prüfen und diese ggf. beim Nutzer "erfragen". Du solltest auch versuchen, ein Einstellungsseite zu erstellen, bei der man die Daten ändern kann.