Short answer

Phone joins ESP32 SoftAP but the captive page never opens. What breaks?

  • Many phones only open a portal after a DNS or HTTP probe. Serving only on a fixed IP with no DNS captive response looks ‘connected but blank’.
  • HTTP must listen on the SoftAP interface address the phone actually uses. Binding only to STA IP fails when STA is down.
  • iOS and Android differ on when they show the portal. Test both; do not assume one browser tab means provisioning works.
  • For shipping units prefer the official provisioning flow over a home-made SoftAP page.

中文

短答

手机连上 ESP32 SoftAP 但门户页不出来,卡在哪?

  • 很多手机会先做 DNS/HTTP 探测才弹门户。只在固定 IP 开页、没有 captive DNS 时,会显示已连接但空白。
  • HTTP 要绑在 SoftAP 口实际地址上。只绑 Station IP、STA 又没连时,手机打不开。
  • iOS 和 Android 弹窗时机不同。两边都测;不要以为开一个浏览器标签就等于配网成功。
  • 量产更稳妥的是官方配网流程,而不是自制 SoftAP 页。