Ankündigung

Einklappen
Keine Ankündigung bisher.

Web App - Apple iOS 11 - Kameranutzung buggy

Einklappen

Neue Werbung 2019

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

  • Web App - Apple iOS 11 - Kameranutzung buggy

    Hi,

    ich bin auf ein anscheinend ungelöstes Problem gestossen, das auftaucht, wenn folgende Sachverhalte zusammen zutreffen

    1) iOS 11 auf iPhone oder iPad

    2) Web App, die dem Homescreen hinzugefügt wurde

    3) Verwendung des meta tags
    Code:
    <meta name="apple-mobile-web-app-capable" content="yes" />
    4) Verwendung des file input elements z. B. so
    Code:
    <input class="inputfile" type="file" accept="image/*" id="capture" />

    Wer so versucht Bilder von der Kamera z. B. des iPhones zu laden / verarbeiten, wird feststellen, dass
    die Kamera zwar geöffnet wird, der Bildschirm ab schwarz bleibt und kein Foto geschossen werden kann.

    Das Problem wird z. B. auch hier beschrieben und existiert anscheinend seit Einführung von iOS 11.

    Kennt Ihr das Problem und evtl. eine Lösung dafür?

    Ich finde das ist ein ziemlicher Nachteil, denn der User ist gnadenlos: Funktioniert nicht, weg damit.

    Apple scheint sich zu genau so einem Nervkandidat wie Microsoft zu entwickeln.

    [B]Es ist schon alles gesagt. Nur noch nicht von allen.[/B]

  • #2
    Bevor ich ich ins Nirwana abrutsche...Hat niemand eine Idee?
    [B]Es ist schon alles gesagt. Nur noch nicht von allen.[/B]

    Kommentar


    • #3
      Ich kannte das Problem nicht, würde mich aber erstmal via Safari mit dem iDevice verbinden und schauen ob in der Konsole was zu finden ist.
      [SIZE="1"]Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.[/SIZE]

      Kommentar


      • #4
        @lottikarotti: Vielen Dank. Ich werde mir wohl endlich mal zusätzlich ein iPhone zulegen, damit ich wenigstens ein iDevice habe. Dennoch bin ich nicht sicher, ob ich Deinen Tipp dann umsetzen kann,
        denn der Kamera Bug taucht speziell dann auf, wenn die Web APP zum Homescreen hinzugefügt wurde und dann keine Safari Konsole mehr zugänglich ist?!
        [B]Es ist schon alles gesagt. Nur noch nicht von allen.[/B]

        Kommentar


        • #5
          Nach lesen vieler Bug-Berichte zu diesem Thema und zwei Artikel, die besagen, dass sich Apple in Richtung Progressive Web Apps demnächst öffnen will, gehe ich im Moment mal davon aus, dass das Problem
          nur vorübergehender Natur ist.

          Für's erste verfolge ich mal den Ansatz spezifisch iOS 11 User "gracefully zu degraden". Eigentlich müsste ich herausfinden:

          1) Ist die User Platform iOS 11 ?
          2) Läuft die Web-App als eine dem Homescreen hinzugefügte Standalone App?

          Jetzt mal anders gefragt: Wie würdet Ihr beides möglichst einfach aber genau ermitteln?
          [B]Es ist schon alles gesagt. Nur noch nicht von allen.[/B]

          Kommentar


          • #6
            zu 1.
            Useragent auslesen und nachsehen
            $_SERVER['HTTP_USER_AGENT']


            PHP-Code:
            // For Testing
            $u_agent 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A356 Safari/604.1'

            Kommentar


            • #7
              @protestix: Ja, danke. Hatte gerade schon mal angefangen, mir die diversen properties des navigator Objekts ausgeben zu lassen. Erstaunlich, wie schnell man da in die Irre geleitet werden kann. Bei Chome steht im UserAgent z. B. auch was von "AppleWebKit" und "Safari". Da muß man schon genau gucken, wonach man da sucht.

              Es gibt ja auch fertige Tools für sowas, die ich sogar anderswo im Einsatz habe. Im Moment interessieren mich aber genau nur die 2 Punkte oben, weswegen ich dachte, man kann mit einer kurzen Abfrage klären, ob ich es mit dieser hässlichen Kombination zu tun habe.

              Eine Suche nach ("iPhone" oder "iPad") und "OS 11" scheint hier wohl zu genügen für Punkt 1.
              [B]Es ist schon alles gesagt. Nur noch nicht von allen.[/B]

              Kommentar


              • #8
                So sieht jetzt mal meine Graceful Degradation aus. Falls dazu jemand noch was sagen möchte?

                Code:
                function handle_iOS11() {
                    /*
                        Due to bug with input file => camera (camera black)) when standalone web app installed on iOS 11 mobile device 
                    */
                    var iOS11detected = false;
                    var ua = navigator.userAgent;
                    var uaUpper = ua.toUpperCase();
                
                        if((uaUpper.indexOf('IPAD') > -1 || uaUpper.indexOf('IPHONE') > -1) && (uaUpper.indexOf('OS 11') > -1)) {
                            if (uaUpper.indexOf('SAFARI') == -1) {
                                //iOS user agents are said ***not*** to mention the word Safari if they run standalone
                                iOS11detected = true;
                            }
                        }
                
                        if (iOS11detected === true) {
                          $('#camTrigger').css('display','none');  
                        }
                }
                [B]Es ist schon alles gesagt. Nur noch nicht von allen.[/B]

                Kommentar

                Lädt...
                X