Mobile browsers block navigator.clipboard.readText() unless called inside a user gesture (tap/click). The old flow relied on the visibilitychange event to auto-read the clipboard when the user returned from Amber, which silently failed. New flow: 1. User taps "Sign in with Amber" → opens Amber via Android intent 2. User approves in Amber → pubkey copied to clipboard 3. User returns to browser → sees "Complete Sign-in" button 4. User taps "Complete Sign-in" → clipboard read succeeds (user gesture) 5. Pubkey decoded, account registered, backend session created Also handles npub/nprofile decoding and provides clear error messages for empty clipboard, missing permissions, and non-Android devices. Co-authored-by: Cursor <cursoragent@cursor.com>
7.9 KiB
7.9 KiB