flet-dev / flet

Flet enables developers to easily build realtime web, mobile and desktop apps in Python. No frontend experience required.
https://flet.dev
Apache License 2.0
11.56k stars 452 forks source link

`CupertinoTextField` doesn't autofill on web #4102

Closed ndonkoHenri closed 1 month ago

ndonkoHenri commented 1 month ago

Discussed in https://github.com/flet-dev/flet/discussions/4055

Originally posted by **MalyshevDenSer** September 26, 2024 ### Question Hi! I'm creating a simple login page, and everything works fine on Android and Windows platforms. If the user has saved their login and password in a browser's password manager, the credentials are correctly suggested and autofilled into the text fields. However, when attempting the same on iOS or macOS using Safari or Chrome, the password is not autofilled into the text field, even after being saved in the password manager. ### Steps to reproduce: 1. Create a web app. 2. Open the app's URL on an iOS or macOS platform. 3. Enter any random login and password. 4. The browser will prompt you to save the login and password in its password manager. 5. Reload the page or open a new browser tab. 6. Begin typing your login. 7. The browser will suggest autofilling the login and password or just the password. 8. After accepting the autofill suggestion, the password does not get added to the text field on these platforms. ### Code sample ```python import flet as ft def main(page: ft.Page): login_field = ft.TextField(label="Your name", autofill_hints=ft.AutofillHint.NICKNAME, adaptive=True) password_field = ft.TextField( label="password", password=True, can_reveal_password=True, autofill_hints=ft.AutofillHint.PASSWORD, adaptive=True ) page.add( ft.AutofillGroup( ft.Column( controls=[login_field, password_field], adaptive=True ) ) ) ft.app(main, port=8014, view=ft.AppView.WEB_BROWSER) ``` ### What I’ve Tried I used autofill hints (there is a [discussion](https://github.com/flet-dev/flet/discussions/3910) with a similar problem) and adaptive property, it doesn't work