Needed to embed a third-party booking tool recently, so I went with the WebView widget in FlutterFlow. Setup was simple just drop in the widget and point it to the URL. For most static or lightweight pages, it works fine.
A few technical notes worth keeping in mind:
iOS behavior differs slightly links that open in a new tab (
target="_blank") don’t work reliably. If you control the external content, switch links totarget="_self".There’s no built-in interaction between the app and the embedded page. You can’t read URL changes, trigger in-app actions from the WebView, or inject JS. It’s a read-only surface from FlutterFlow’s side.
Performance depends entirely on the page you load. Light content renders well, but anything with heavy JS (dashboards, auth portals) feels sluggish, especially on lower-end Android devices.
There’s no native loading indicator tied to the WebView state, so if you want feedback during load time, you’ll have to build it using visibility toggles and a timer or similar workaround.
It’s a useful tool if your use case is simple. If you’re expecting tight control or dynamic interaction with the embedded content, this probably isn’t the right layer.