Feature

Pull-to-refresh in a converted website app

Every user tries it. On a feed it's essential; on a map it's infuriating. Here's how to have one without the other.

Updated October 20262 min readwebtoappconverter.dev

Key takeawayPull-to-refresh reloads the current page when the user drags down at the top of the screen — expected on feeds, news and order lists. It conflicts with elements that scroll internally (maps, carousels, chat windows, modals), because a downward drag inside them can trigger a reload. Enable it, then test those elements; if one conflicts, stop the gesture from reaching the app or disable refresh on that page.
Great for
Feeds, lists, news
Conflicts
Maps, carousels, modals
Fix
Scroll containers + test
Reload
Current URL

Where it shines

  • News, blogs and magazines — fresh articles.
  • Shops — updated stock and prices.
  • Dashboards and order lists — current status.
  • Forums — new replies.

Where it bites

The app sees a downward drag at the top of the WebView and reloads — even if the user meant to scroll a map or a chat window. Common victims:

ElementSymptom
Embedded mapsPanning down reloads the page
Image carousels and slidersVertical swipe reloads
Chat widgetsScrolling up through messages reloads
Full-screen modalsClosing gesture reloads underneath
FormsHalf-typed form lost on accidental reload

Fixes

  1. Make internal scrollers real scroll containers (overflow:auto) so the page itself isn't at the top when the user drags inside them.
  2. Add overscroll-behavior: contain to modals and chat panes.
  3. If a page is mostly map, turn refresh off for it (if your converter supports per-URL rules) or for the whole app.
  4. Warn before leaving forms with unsaved input (beforeunload).

Frequently asked

Does pull-to-refresh clear the cache?

No, it reloads the page like a browser refresh. Cached files may still be used if your server allows it.

Keep going