Witam, posiadam plik .php z formularzem za którego pomocą dodaje wartości do bazy danych na PC i telefonie z Androidem w wersji 7.
Czy jest możliwość dodania okna dialogowego z komunikatem przed przypadkowym wyjściem ze strony lub odświeżeniem za pomocą przycisku lub gestu na telefonie ?
Kilka razy zdarzyło mi się odświeżyć stronę na telefonie i straciłem wszystkie dane.
Nie rozumiem pytania. Brzmi jakbyś miał skrypt PHP, z którego masz dwie aplikacje - web i mobilną ;) jeśli tak, to nie wiem, ale do forum Javy to nie pasuje.
Jeśli chodzi Ci po prostu o stronę, na której masz formularz i chcesz uchronić się przed skasowaniem wpisanych w niego wartości przy odświeżeniu tej strony (bez względu na to czy wchodzisz na nią z przeglądarki internetowej na PC czy z telefonu) to potrzebujesz javascriptu, który na bieżąco zapisze dane z formularza do localStorage. Tak działa to na tym forum. Wpisz sobie coś w treść odpowiedzi i daj odśwież, dane się zachowają.
Przykładowego skryptu nie podam, bo nigdy z tego nie korzystałem, ale na pewno coś znajdziesz.
Dokładnie, mam formularz php w którym dodaję dane do bazy danych korzystając z PC i Telefonu.
O ile na PC nie ma problemu przed przypadkowym kliknięciem to na Telefonie jest gest odświeżania strony przez przeciągnięcie na dół.
Napisałem o JS z racji tego, że chciałem dodać skrypt który wyświetli okno dialogowe z treścią potwierdzającą opuszczenie strony.
Musisz obsłużyć zdarzenie onbeforeunload.
Tu jakiś przykład: https://dev.to/chromiumdev/sure-you-want-to-leavebrowser-beforeunload-event-4eg5
Witaj, sprawdzałem ten skrypt wcześniej i o ile działa na PC to nie działa w przeglądarce google chrome na androidzie.
https://stackoverflow.com/questions/17535076/android-chrome-window-onunload
Raczej też nie pomoże :(
Tu chyba działający: https://stackoverflow.com/a/52358522
Zanim napisałeś odpowiedź to sprawdziłem pierwszy link, przeczytałem, że nadal nie działa to w przeglądarce na androidzie.
Drugi link również sprawdziłem, ale niestety też nie działa.
Wygląda to tak jakby przeglądarka na androidzie w ogóle nie wykonywała kodu.
Nie ma to znaczenia, czy sekcja kodu dodawana jest pomiędzy <head></head> czy po za head w sekcji <body></body>.
Próbowałem również obejść to na około dodając do formularza pole "checkbox" z wartością required, ale niestety nic to nie daje bo nadal mogę cofnąć i odświeżyć stronę.
To czekamy na pozamykanie tych bug'ów:
https://bugs.chromium.org/p/chromium/issues/detail?id=339341
https://bugs.chromium.org/p/chromium/issues/detail?id=866818
Tymczasem jakoś inaczej to obejść... Co jakiś czas (onchange, setinterval) zapisywać tymczasowe dane do localstorage lub wysyłać na serwer?
Sprawdzić na innej przeglądarce?
To już nie mam pojęcia jak to obejść.
Czy przerobienie strony na plik .apk do urządzenia mogłoby pomóc ?