WP8.1 WinRT App nach bestimmter Zeit sperren WP8.1 WinRT App nach bestimmter Zeit sperren
Danke Danke:  0
Ergebnis 1 bis 7 von 7
  1. Hallo Leute,

    für meine App PhotoKeeper suche ich derzeit noch nach Rat für ein bestimmtes Feature. Allgemein sperrt sich die App, sobald sie in den Hintergrund geschickt wird und der Nutzer dies nicht über die Optionen deaktiviert hat. Wenn man nun aber die App häufiger verlassen muss (zb durch WhatsApp) während man gerade aber in der App arbeitet, so müsste man sich jedes Mal neu authentifizieren, was auf Dauer etwas nervig wird. Natürlich kann man in so einem Fall die Option deaktivieren, was ich aber irgendwo doof finde.
    Aus diesem Grund wäre es nett, wenn man optional ein Zeitfenster angeben kann, nach dem sich die App sperren soll. Rein von der Umsetzung her ist das ja kein Problem, da ich ja an sich nur zwei Zeitstempel vergleichen müsste und daran dann sehe, ob das eingestellte Zeitfenster abgelaufen ist. Problematischer dabei ist die Sammlung des zweiten Zeitstempels. Derzeit wird die Sperrung durchgeführt, wenn das VisibilityChanged-Ereignis gefeuert wird und der Status des Fensters sich auf nicht sichtbar ändert. Ich könnte die Sperrung auch veranlassen, wenn das Fenster sichtbar wird, aber dann sieht es relativ unschön aus, zudem kann man dann für kleinen Moment noch den eigentlichen Inhalt sehen, bevor sich der Login drüberlegt. Dies ist natürlich alles ungeeignet für eine Sperrung nach bspw. 5min.

    Meine Frage wäre nun, nach all der Vorgeschichte, ob es möglich ist, irgendwie eine Art einmaliger Task zu starten, welcher im Hintergrund läuft und dann die Sperrung triggert, wenn das Zeitfenster abgelaufen ist. Es gibt zwar die BackgroundTasks, aber einerseits weiß ich nicht, ob diese auch zu einer anderen Page navigieren können und andererseits sind diese zu unflexibel, da sie immer laufen und nicht nur einmalig bzw. nach manuellem Start.
    Kennt jemand von euch hier vielleicht eine Möglichkeit, das Ganze umsetzen?
    0
     

  2. 20.08.2014, 19:55
    #2
    Die Backgroundtasks laufen als komplett seperater Prozess im OS => von denen aus kannst du das nicht umstellen. Ich würde wohl beim VisibilityChanged eine Ebene einblenden über den Bildern anstatt auf eine andere Seite zu navigieren. Wenn die Seite wieder sichtbar wird und die App nicht gelockt werden muss dann blendest du von der Ebene wieder zum Bild (z.B. die Transparenz animieren über 300 ms). Soll die App gelockt werden blendest du die Eben nicht aus sondern navigierst stattdessen zur Unlock-Page.

    Klingt das nach einer brauchbaren Lösung?
    0
     

  3. Das hab ich mir schon gedacht, dass die Tasks eher nicht nutzbar sind. Deine Lösung mit der Einblendung wäre soweit relativ gut allgemein, da die zuletzt besuchte Seite ja noch im TaskSwitcher sichtbar ist. Hast du da vielleicht ein wenig was zur Hand, wie ich das einfach umsetzen kann (ich gehe mal von aus, dass ich das wohl sowieso auf jeder Page dann implementieren muss), so dass der Content auch im TaskSwitcher geschützt ist und nicht eingesehen werden kann?

    Jedenfalls, die Lösung meines Problem ist es nicht direkt. Das Sperren an sich funktioniert ja bisher perfekt, sobald die App verlassen wird. Mein Problem ist eher, dass ich noch eine zeitbasierte Komponente hinzufügen will, d.h. nicht direkt beim Verlassen sperren, sondern erst dann, wenn die App bspw. 5 Minuten im Hintergrund war (jedes Verlassen startet somit den Timer erneut). Genau hier liegt eben das Problem, dass ich da keine Möglichkeit hab, das im Hintergrund zu triggern (weshalb ich das nicht prüfen möchte, wenn die App wieder in den Vordergrund gelangt, habe ich ja schon beschrieben). Ich gehe aber mal davon aus, dass es keine Lösung gibt, welche da praktikabel ist.
    0
     

  4. 20.08.2014, 23:12
    #4
    Ja, das müsste auf die jeweilige Page - weiß nicht wieviele du da hast. Das würde ich so machen wie du jetzt die Sperre machst. Die Idee mit dem Überblenden wenn der User zurückkehrt oder halt dann auf die Sperrpage navigieren hat den Sinn, dass der User eben nicht erst die Sperrpage sieht und dann zum Content kommt sondern dass das im Optimalfall so aussieht als wäre es eine Erweiterung der sowieso vom System gemachten Animation.

    Der Endeffekt ist dann: kehrt der User nach mehr als 5 Minuten zur App zurück ergibt dein Vergleich dass gesperrt werden muss => Navigation zur Sperrpage. Ergibt der Vergleich dass es unter 5 Minuten sind kehrt er dann zu einer "schwarzen" Page zurück die aber ziemlich schnell das Bild anzeigt wodurch es so wirkt als wäre er direkt zum Foto zurücknavigiert.

    Das im Taskswitcher nix zu sehen ist würde vorraussetzen, dass jetzt beim Sperren der Screenshot schon richtig deine Sperrpage zeigt. Wenn das System seinen Taskswitcher-Screenshot schon vorher macht wäre mir leider nicht bekannt wie man den verhindern könnte.
    0
     

  5. Hmm deine Lösung ergibt Sinn, das wäre eine gute Täuschung. Das einzubauen ist aber etwas aufwändig, denn ich hab allein in der WP-Version schon 14 Pages (bedingt dadurch, dass ich u.a die Settings in Kategorien unterteilt habe, welche wiederum eine Page sind, da ich unter WP ja kein SettingsPage hab im Gegensatz zu Windows 8). Der Hintergrund dafür, dass ich keine einzige Page ausnehme ist, dass man ja über den Backstack am Ende dennoch könnte ans Foto gelangen, daher muss ich immer sperren, auch wenn es bspw. gerade eine Seite in den Einstellungen wäre. (Im Allgemeinen habe ich sowieso bei WP noch ein paar kleinere Änderungen drin, was die Navigation angeht, da WP ja immer einen OS-seitigen Backbutton hat, während bei Windows der Button ja in der App steckt und ich den daher entfernen kann, wenn er nicht da sein darf)

    Das mit dem TaskSwitcher ist leider nicht zu verhinden denke ich, da ich zwar beim Verlassen der App die Navigation triggere, diese aber erst ausgeführt bzw. beendet wird, wenn die App wieder hervorgeholt wird, so dass das OS seinen Screenshot noch auf der originalen Seite macht -> Man sieht, was eigentlich nicht sichtbar sein sollte.

    Ich schätze wohl, dass sich dieses Feature eher nicht umsetzen lassen wird, da ich so keine Möglichkeit habe, die Zeit effektiv im Hintergrund zu tracken. Falls doch noch irgendwo ne Lösung verfügbar sein sollte, so höre ich mir gerne weitere Tipps an.
    0
     

  6. 21.08.2014, 15:54
    #6
    Schonmal versucht die OnLaunched Methode in der App.cs zu überschreiben und die Suspending, Resuming, etc Events zu verwenden? Je nach Zeit kannst du dann den ursprüngliche Fensterinhalt wieder herstellen (bzw. nichts tun), oder die Login-Seite als Window.Current.Content setzen. So sollte sich das Problem mit dem Drüberlegen des Logins vermeiden lassen.
    Den Backstack kannst du übrigens auch leeren.
    0
     

  7. Die genannten Events verwende ich teilweise bereits, allerdings eben je nach Methode für unterschiedliche Zwecke in der App halt so, wie sie typischerweise aufgerufen werden. Das Sperren erledige ich ja wie gesagt über VisibilityChanged. Dass ich den Backstack leeren kann, weiß ich ebenso schon, daher meinte ich ja oben, dass ich für WP bisschen mehr Magic verwende musste als bei Win8, um zu verhindern, dass man einfach den Login überspringen kann.
    0
     

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 14.04.2010, 18:43
  2. Antworten: 4
    Letzter Beitrag: 26.02.2008, 22:19
  3. Datenverbindung nach gewisser Zeit ausschalten
    Von chaeller84 im Forum HTC TyTN II
    Antworten: 1
    Letzter Beitrag: 12.12.2007, 19:24
  4. Antworten: 6
    Letzter Beitrag: 06.06.2006, 21:01
  5. nach einiger Zeit steigt Empfang aus
    Von SPV-Junkie im Forum Plauderecke
    Antworten: 15
    Letzter Beitrag: 27.04.2004, 19:02

Besucher haben diese Seite mit folgenden Suchbegriffen gefunden:

wp8.1 winrt background task

wp8.1 sperren

xpa wp8