Ankündigung

Einklappen
Keine Ankündigung bisher.

Web App Manifest

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Web App Manifest

    Ich habe mal ein "Web App Manifest" integriert und gepusht, mit dem es auf Android möglich ist ein Icon auf den Bildschirm zu legen und die VISU dann damit als App zu starten, heißt es sind keine Browser Toolbars in Chrome mehr zu sehen was bedeutet dass man mehr sieht.

    Hab das ganze auch schon hier mal angefragt gehabt: https://github.com/Martin-Gleiss/smartvisu/issues/160


    Gruß,
    Thomas

    #2
    TCr82 das geht doch von haus aus?!

    Kommentar


      #3
      nöpe, wenn man oben ist ist auch immer die toolbar da.

      Kommentar


        #4
        TCr82 vermutlich browserabhängig. bei mir ist das nicht der fall -> Chrome am Handy / Tablet starten -> SV öffnen -> zu Startbildschirm hinzufügen.
        Zuletzt geändert von psilo; 03.10.2017, 05:34.

        Kommentar


          #5
          okay, ich muss gestehen dass ich es so noch nicht getestet hatte. Mich störte damals das mit der Toolbar, wobei ich immer aus dem Browser heraus die URL angesuft hatte. dann hatte ich danach gesucht und das mit dem Manifest gefunden und integriert.

          Werde es mal bei Gelegenheit nochmal ohne testen... wobei das hier ja keine große Integration ist und so wohl auch von mehreren Browsern unterstützt ist. Ausserdem kommt der Splash Screen hinzu (ja, ich weiß ist nicht ganz so wichtig) und man könnte auch den Benutzer automatisch darauf hinweisen einen Button für den Homescreen zu erstellen uvw..

          Kommentar


            #6
            Zitat von psilo Beitrag anzeigen
            TCr82 vermutlich browserabhängig. bei mir ist das nicht der fall -> Chrome am Handy / Tablet starten -> SV öffnen -> zu Startbildschirm hinzufügen.
            So geht das auch aufm Apfel...

            Kommentar


              #7
              In iOS gab es aber anscheinend ein Problem.
              Wenn ich mich richtig erinnere, ging es da um Caching. iOS ignoriert wohl die HTTP Cache Header, wenn der Link auf dem Homescreen ist und lädt Dateien nur neu, wenn die Version im Manifest ändert.
              Wenn wir schon ein dynamisches Manifest haben, müsste also darin jeweils eine generierte Version aufgeführt werden, welche z.B. beim Löschen des Caches geändert wird.
              Da ich selbst nichts mit iOS habe, kann ich das aber nicht testen.

              Kommentar


                #8
                Moin Stefan,
                genau das ist/war das Problem unter iOS. Jedenfalls bei der alten iOS Version auf meinem Wand-iPad.
                Mittels php Script kann man dem Cache Manifest beibringen einen neuen Hash zu generieren, wenn sich eine Datei geändert hat.
                Damit kriegt dann auch die Web App in iOS zu einem Reload überredet.
                Die Version die bei mir läuft stelle ich gerne zur Verfügung.
                Habe nur leider keine Ahnung, wie man das bei Git pushed.
                Gruß, Sebastian
                Baustelle 2.0 (Detailprogrammierung und Restarbeiten)
                Ruhri? -> Komm zum Stammtisch

                Kommentar


                  #9
                  Statt Git kann ich es aber hier posten.
                  Ich habe die root.html wie folgt geändert.
                  HTML-Code:
                  /**
                  * -----------------------------------------------------------------------------
                  * @package     smartVISU
                  * @author      Martin Gleiß
                  * @copyright   2012 - 2015
                  * @license     GPL [http://www.gnu.de]
                  * -----------------------------------------------------------------------------
                  */
                  <!DOCTYPE html>
                  
                  <html manifest="pages/{{ config_pages }}/cache.manifest.php" type="text/cache-manifest">
                  
                  <head>
                      <title>{{ config_title }}</title>
                  und eine zusätzliche Datei im meinem Pages Verzeichnis abgelegt.
                  cache.manifest.php
                  PHP-Code:
                  <?php
                  /**
                   * Iterates through every directory and generate a manifest file.
                   * If any file change occurs, the manifest changes and the browser triggers an
                   * application refresh.
                   */

                  header("Cache-Control: max-age=0, no-cache, no-store, must-revalidate");
                  header("Pragma: no-cache");
                  header("Expires: Wed, 11 Jan 1984 05:00:00 GMT");
                  header('Content-type: text/cache-manifest');

                  $hashes "";

                  function 
                  printFiles($path '.'$subDir ''){
                      global 
                  $hashes;

                      
                  $objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path));
                      foreach(
                  $objects as $name => $file) {
                          if (
                  $file->isFile() && $file->getFilename() !== 'cache.manifest.php') {
                              echo 
                  substr($name2) . "\n";
                              
                  $hashes .= md5_file($file);
                           }
                      }
                  }
                  ?>
                  CACHE MANIFEST
                  <?php
                  printFiles
                  ();
                  // version hash changes automatically when files are modified
                  echo "#VersionHash: " md5($hashes) . "\n";
                  ?>

                  NETWORK:
                  *
                  Baustelle 2.0 (Detailprogrammierung und Restarbeiten)
                  Ruhri? -> Komm zum Stammtisch

                  Kommentar


                    #10
                    Bainit
                    Jedenfalls bei der alten iOS Version auf meinem Wand-iPad
                    Wie alt denn? Die ios Version wäre vieleicht auch für andere hilfreich. Im Moment geistert das Thema aber niemand macht fest wann das Problem genau auftritt. Ich kann es bei mir z.B. nicht nachvollziehen.
                    Viele Grüße
                    Martin

                    There is no cloud. It's only someone else's computer.

                    Kommentar


                      #11
                      Msinn Wie erwähnt konnte ich es nie selbst testen, aber gemäss den verschiedenen geisterhaften Meldungen ergänzt um eigene Google-Recherche dürfte das Problem in folgender Situation auftreten.
                      Du fügst die smartVISU zum Homescreen hinzu. Dann änderst du ein JS- oder CSS-File. Dieses wird nicht neu geladen, sondern aus dem Cache
                      Dies weil bei Verknüpfungen auf dem Homescreen der Cache nicht wie im Browser gehandhabt wird, sondern unabhängig des HTTP-Headers die abhängigen Dateien fix gecached bzw. heruntergeladen werden.
                      Nur bei einer Änderung des Manifests oder einer neuen HTML-Datei werden diese frisch geladen (deshalb hilft das Umbenennen von index.html zu index1.html).

                      Kannst du das evtl. simulieren und nachvollziehen?

                      Kommentar


                        #12
                        Moin Stefan,
                        ich habe es in der Vergangenheit genau so wie von dir beschrieben feststellen können.
                        Wenn sich eine js Datei geändert hat, hat die Webapp das nicht mitbekommen. Erstellen einer "neuen" Webapp durch umbenennen der Index.html und erneutes Ablegen auf dem Homescreen hat geholfen.
                        Löschen der Webapp und neu ablegen hingegen hat hingegen nicht geholfen.
                        iOS Version liefere ich morgen nach.
                        Ob es das Problem auf neueren iPads ebenfalls gibt habe ich bisher noch nicht getestet.

                        Gruß, Sebastian
                        Baustelle 2.0 (Detailprogrammierung und Restarbeiten)
                        Ruhri? -> Komm zum Stammtisch

                        Kommentar


                          #13
                          Zitat von Bainit Beitrag anzeigen
                          Löschen der Webapp und neu ablegen hingegen hat hingegen nicht geholfen.
                          Stimmt, das kommt noch erschwerend hinzu.

                          Kommentar


                            #14
                            ohne Cache Manifest
                            kein Nachladen einer geänderten CSS Datei auf meinen iPads
                            mit Cache Manifest
                            Seite wird ohne Änderung gerendert. Nach ca. 1 Sekunde erfolgt ein komplettes Neurendern der Seite mit der Änderung
                            Testgeräte:
                            iPad 2 mit iOS 9.3.5
                            iPad Air mit iOS 10.3.3

                            Getestet habe ich das wie folgt:
                            1) Visu zum HomeScreen hinzufügen.
                            2) die eigenen visu.css im eigenen Pages Verzeichnis um folgende Zeile erweitern
                            Code:
                            .ui-page > .ui-header {
                                border-bottom: 2px solid #f00; }
                            3) Visu im Browser neu laden.
                            4) im Browser wird zwischen Page und oberer Menüleiste jetzt eine auffällig rote Linie angezeigt
                            5) Webapp erneut öffnen
                            6) wird die CSS nicht nachgeladen, erscheint kein roter Strich

                            Der umgekehrte Weg funktioniert genauso. Zeile aus visu.css entfernen, führt bei Neuöffnen zum neurendern.
                            Dies funktioniert nur, wenn die App geschlossen/minimiert wird. Bei einer geöffneten App erfolgt keine Aktualisierung der anderen Dateien. Ein Öffnen einer anderen Seite in der Webapp reicht nicht. Hiermit kann ich zwar gut leben, wollte es für alle die es versuchen nachzuvollziehen, trotzdem erwähnen.
                            Gruß, Sebastian
                            Baustelle 2.0 (Detailprogrammierung und Restarbeiten)
                            Ruhri? -> Komm zum Stammtisch

                            Kommentar


                              #15
                              Das Web App Manifest habe ich mit einer kleinen Anpassung gemerged (escape des Titles falls da Anführungszeichen drin sind).
                              Es ist in git zwar nicht ganz so abgelaufen wie geplant, aber immerhin ist es nun drin.

                              Kommentar

                              Lädt...
                              X