andreknieriem / photobooth

A photobooth Web-Application for raspberry pi with gphoto2
https://photobooth.andrerinas.de/
MIT License
300 stars 163 forks source link

Apple devices smaller IOS 13.x / Gallery Fullscreenpicture button without function #185

Closed obkram closed 5 years ago

obkram commented 5 years ago

Describe the bug Bei all meinen Appledevices ( iPhone / iPad ) mit einem IOS kleiner ios 13.0 funktionieren die Funktionsbutton in der ( Vollbild ) Gallery Ebene nicht, wenn ein Bild sich im Fullscreen Modus befindet. Die Icons zeigen zwar an das sie betätigt werden ( werden weiss ) aber es folgt keine Aktion. Getestet mit Chromakeying, Printing und Barcode. Nur die "X" Taste zum zurückkehren in die übergeordnete Galleryebene funktioniert. Testet man den Barcode aus einer anderen Ebene z.B. direkt nach der Bildaufnahme dann funktioniert dies. Ich habe extra einen aktuelle Browser eines anderen Herstellers ( Firefox etc. ) ausprobiert. Dort ging es ebenfalls nicht. Nur an einer älteren Version von Safari allein kann es nicht liegen. Ich weiss das der Fehler schonmal als Issue eröffnet wurde aber ich habe den Issue nicht in den Offenen Issues finden können.

To Reproduce Steps to reproduce the behavior:

  1. Go to 'Gallery, via APPLE iPad/iPhone smaller IOS13'
  2. Click on 'one of the pictures'
  3. Click on 'chromakeying or print or QR Code, they don´t work. Only color will be changed shortly'
  4. Click on 'X, this will work'

Expected behavior Die entsprechende Funktion sollte nach dem Antippen ausgeführt werden. Die Icons zeigen die Auslösung via Farbwechsel an aber nichts passiert.

Screenshots nicht möglich, Format wird nicht akzeptiert

Environment (please complete the following information):

does it work bevore

Photobooth

Upload eines Videos war leider nicht möglich. Das Format wird von der Seite nicht akzeptiert. Als Betatester stehe ich gerne mit der entsprechenden Hardware zur Verfügung. Vielen Dank.

flighter18 commented 5 years ago

Hallo @obkram

Dieser Bug ist bereits bekannt. Ich hatte das selbe Problem, siehe https://github.com/andreknieriem/photobooth/issues/116 & https://forum.webflow.com/t/button-not-responding-in-safari-on-iphone/51418.

andi34 commented 5 years ago

@sualko https://stackoverflow.com/questions/15280596/css-div-buttons-not-working-on-iphone-or-ipad might be a solution?

sualko commented 5 years ago

I don't own any Apple products and have no time to test other environments. If you create a pull request to fix this issue, I'm happy to test and comment it.

andi34 commented 5 years ago

From what I found here: https://stackoverflow.com/questions/7018919/how-to-bind-touchstart-and-click-events-but-not-respond-to-both

The problem with .click on iOS is that it unbinds the click event."

(...) using 'click touchstart' will get the desired result. If you console.log(e) your clicks though, you may find that when jquery recognizes touch as a click - you will get 2 actions from click and touchstart. The solution bellow worked for me.

//if its a mobile device use 'touchstart'
if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
    deviceEventType = 'touchstart'
} else {
//If its not a mobile device use 'click'
    deviceEventType = 'click'
}

$(document).on(specialEventType, function(e){
    //code here
});
flighter18 commented 5 years ago

@andi34 OK, I've forgotten it :)

andi34 commented 5 years ago

@flighter18 and @obkram could you please test https://github.com/andi34/photobooth/commit/8c62f1c6bb22bf211ca53feb80cbd3ad84d5e608 ?

I'll fix the Apple typo in commit message once confirmed it fixes the issue

flighter18 commented 5 years ago

@andi34 I'm gona test it this weekend.

obkram commented 5 years ago

@andi34 Ich bin zwar nicht flighter18 aber ich hatte bereits Zeit euren Fix zu testen. Funktioniert ( zumindest bei mir ) einwandfrei. Habt ihr super hinbekommen, vielen Dank.

andi34 commented 5 years ago

@obkram danke :) Werde es nachher per PR hier reinpacken, dann kann @sualko es nochmal absegnen.

andi34 commented 5 years ago

Maybe someone with a non-apple device and printer could check that print isn't executed twice if clicking the print button in gallery after this change?

andi34 commented 5 years ago

There's an seperate issue on iOS 12 and below with QR and if implemented DL Button.

Todo: detect if we're using an iOS devices, if yes also check the version and spit an error message that iOS is to old to use this function.

Might help on implementing the check: https://stackoverflow.com/questions/8348139/detect-ios-version-less-than-5-with-javascript

obkram commented 5 years ago

Maybe someone with a non-apple device and printer could check that print isn't executed twice if clicking the print button in gallery after this change?

Habe es mit einen Firetablet getestet. Es gab nur einen Ausdruck.

flighter18 commented 5 years ago

@flighter18 and @obkram could you please test andi34@8c62f1c ?

I'll fix the Apple typo in commit message once confirmed it fixes the issue

sorry had a busy weekend :) Works prefectly with my IPad 2 and IOS12. Get also just one print.

andi34 commented 5 years ago

Thanks @flighter18 and @obkram

andi34 commented 5 years ago

There's an seperate issue on iOS 12 and below with QR and if implemented DL Button.

Todo: detect if we're using an iOS devices, if yes also check the version and spit an error message that iOS is to old to use this function.

Might help on implementing the check: https://stackoverflow.com/questions/8348139/detect-ios-version-less-than-5-with-javascript

https://stackoverflow.com/q/57599945

Looks like we shouldn't check for the iOS version