7c7e4745cf6643f8582bb2120863fb579089765f
The previous handler answered Apple/Android/Windows CNA probes with HTTP 302 redirects to "/". That works in a desktop browser, but iOS — particularly when joining via the lock-screen camera quick-scan path — sometimes treats the redirect as "internet works" and never raises the captive banner. The user has to remember the manual fallback URL on the e-ink footer to recover. Switch every probe URL to serve the portal HTML directly with 200 OK. A 200 response whose body is not Apple's magic Success page is the canonical "this is a captive network" signal; banner-fire becomes deterministic on the first probe. While here: - Register HTTP handlers BEFORE softAP comes up so the very first probe from a fast-joining device lands on a ready server, not connection- refused. - Drop the unconditional 500 ms post-softAP delay; softAPIP is valid immediately and the gap was just a window for races. - Add /library/test/success.html (iOS legacy) and /connecttest.txt (Windows 10+) to the explicit handler list. - Delete handle_captive (was the 302 redirect path). Locked-phone caveat: iOS by design will not auto-open the captive portal UI while the phone is locked — the best we can do is make the banner notification fire reliably so it's waiting on unlock. This change accomplishes that. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Description
pictureFrame ESP32 firmware — PlatformIO / Arduino
Releases
1
Languages
C++
61.1%
Python
31.4%
C
7.5%