Deaktivieren der Chrome-Pulldown-Funktion für Android zum Aktualisieren

Ich habe eine kleine HTML5-Webanwendung für mein Unternehmen erstellt.

Diese Anwendung zeigt eine Liste der Elemente an und alles funktioniert einwandfrei.

Die Anwendung wird hauptsächlich auf Android-Handys und Chrome als Browser verwendet. Außerdem wird die Site auf dem Startbildschirm gespeichert, sodass Android das Ganze als App verwalten kann Verwenden eines WebView, denke ich,).

ChromBeta (und ich denke auch das Android System WebView) hat eine "Pull-Down zum Aktualisieren" -Funktion eingeführt Siehe diesen Link zum Beispiel).

Dies ist eine praktische Funktion, aber ich habe mich gefragt, ob sie mit einem Meta-Tag (oder Javascript) deaktiviert werden kann, da die Aktualisierung vom Benutzer beim Navigieren in der Liste leicht ausgelöst werden kann und die gesamte App neu geladen wird.

Auch dies ist eine Funktion, die von der Anwendung nicht benötigt wird.

Ich weiß, dass diese Funktion nur in der Chrome Beta noch verfügbar ist, aber ich habe das Gefühl, dass dies auch auf der Stable-App landet.

Vielen Dank

Bearbeiten: Ich habe Chrome Beta deinstalliert und der Link zum Startbildschirm wird jetzt mit dem stabilen Chrome geöffnet. Die angehefteten Links beginnen also mit Chrome und nicht mit einer Webansicht.

Edit: Heute (19.03.2015) ist das Pull-Down-To-Refresh im stabilen Chrom angekommen.

Edit: von @Evyn antworte ich folgedieser Lin und habe diesen Javascript / JQuery-Code erhalten, der funktioniert.

var lastTouchY = 0;
var preventPullToRefresh = false;

$('body').on('touchstart', function (e) {
    if (e.originalEvent.touches.length != 1) { return; }
    lastTouchY = e.originalEvent.touches[0].clientY;
    preventPullToRefresh = window.pageYOffset == 0;
});

$('body').on('touchmove', function (e) {
    var touchY = e.originalEvent.touches[0].clientY;
    var touchYDelta = touchY - lastTouchY;
    lastTouchY = touchY;
    if (preventPullToRefresh) {
        // To suppress pull-to-refresh it is sufficient to preventDefault the first overscrolling touchmove.
        preventPullToRefresh = false;
        if (touchYDelta > 0) {
            e.preventDefault();
            return;
        }
    }
});

Als @bcintegrity darauf hinwies, hoffe ich für die Zukunft auf eine Lösung mit Site-Manifest (und / oder ein Meta-Tag).

Weitere Vorschläge für den obigen Code sind willkommen.

Antworten auf die Frage(26)

Ihre Antwort auf die Frage