Comenzar
Copy a setup prompt with the install steps and the full markdown guide for this plugin.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-autofill-save-password`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/es/docs/plugins/autofill-save-password/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Instalación
Section titled “Instalación”npm install @capgo/capacitor-autofill-save-passwordnpx cap syncyarn add @capgo/capacitor-autofill-save-passwordnpx cap syncpnpm add @capgo/capacitor-autofill-save-passwordnpx cap syncbun add @capgo/capacitor-autofill-save-passwordnpx cap syncSoporte de Plataforma
Section titled “Soporte de Plataforma”- iOS: Soporte completo (iOS 18.3 y versiones anteriores)
- Android: Trabajo en progreso
Configuración de Plataforma
Section titled “Configuración de Plataforma”1. Configuración de Dominios Asociados
Section titled “1. Configuración de Dominios Asociados”Configura dominios asociados en tu cuenta de Apple Developer y agrégalos a tu archivo App.entitlements:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict> <key>com.apple.developer.associated-domains</key> <array> <string>webcredentials:yourdomain.com</string> <string>webcredentials:www.yourdomain.com</string> </array></dict></plist>2. Configuración de Credenciales Web
Section titled “2. Configuración de Credenciales Web”Agrega un archivo .well-known/apple-app-site-association a tu sitio web:
{ "webcredentials": { "apps": [ "TEAMID.com.yourcompany.yourapp" ] }}Android (Soporte Futuro)
Section titled “Android (Soporte Futuro)”1. Plugin de Google Services
Section titled “1. Plugin de Google Services”Agrega a android/app/build.gradle:
apply plugin: 'com.google.gms.google-services'2. Configuración de Dominio
Section titled “2. Configuración de Dominio”Agrega a android/app/src/main/res/values/strings.xml:
<resources> <string name="asset_statements"> [{ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "web", "site": "https://yourdomain.com" } }] </string></resources>Ejemplo de Uso
Section titled “Ejemplo de Uso”import { SavePassword } from '@capgo/capacitor-autofill-save-password';
// Guardar contraseña después de un inicio de sesión exitosoasync function login(username: string, password: string) { try { // Realiza tu lógica de inicio de sesión aquí const loginSuccess = await performLogin(username, password);
if (loginSuccess) { // Solicitar al usuario guardar la contraseña await SavePassword.promptDialog({ username: username, password: password, url: 'https://yourdomain.com' // Solo iOS });
console.log('Password saved successfully'); } } catch (error) { console.error('Failed to save password:', error); }}
// Leer contraseña guardada para autocompletarasync function loadSavedCredentials() { try { const credentials = await SavePassword.readPassword();
if (credentials.username && credentials.password) { console.log('Found saved credentials'); // Pre-llenar formulario de inicio de sesión return { username: credentials.username, password: credentials.password }; } } catch (error) { console.error('Failed to read saved password:', error); }
return null;}Referencia de API
Section titled “Referencia de API”promptDialog(Opciones)
Section titled “promptDialog(Opciones)”promptDialog(options: SavePasswordOptions) => Promise<void>Guarda credenciales de usuario en el llavero del sistema.
| Parámetro | Tipo |
|---|---|
options | SavePasswordOptions |
readPassword()
Section titled “readPassword()”readPassword() => Promise<SavedCredentials>Recupera credenciales guardadas del llavero del sistema.
Retorna: Promise<SavedCredentials>
Interfaces
Section titled “Interfaces”SavePasswordOptions
Section titled “SavePasswordOptions”| Propiedad | Tipo | Descripción |
|---|---|---|
username | string | El nombre de usuario a guardar |
password | string | La contraseña a guardar |
url | string | Solo iOS - URL del dominio asociado (opcional) |
SavedCredentials
Section titled “SavedCredentials”| Propiedad | Tipo | Descripción |
|---|---|---|
username | string | El nombre de usuario guardado |
password | string | La contraseña guardada |
Integración con Flujo de Inicio de Sesión
Section titled “Integración con Flujo de Inicio de Sesión”import { SavePassword } from '@capgo/capacitor-autofill-save-password';
class AuthService { async login(username: string, password: string) { try { // Autenticarse con tu backend const response = await fetch('/api/login', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ username, password }) });
if (response.ok) { // Ofrecer guardar credenciales await this.offerToSavePassword(username, password); return true; } } catch (error) { console.error('Login failed:', error); } return false; }
private async offerToSavePassword(username: string, password: string) { try { await SavePassword.promptDialog({ username, password, url: 'https://yourdomain.com' }); } catch (error) { // Usuario rechazó guardar o ocurrió un error console.log('Password not saved:', error); } }
async loadSavedCredentials() { try { return await SavePassword.readPassword(); } catch (error) { console.log('No saved credentials found'); return null; } }}Mejores Prácticas
Section titled “Mejores Prácticas”- Solo solicita guardar contraseñas después de una autenticación exitosa
- Maneja casos donde los usuarios rechazan guardar contraseñas con elegancia
- Implementa manejo de errores adecuado para fallos de acceso al llavero
- Usa dominios asociados para compartir credenciales sin problemas entre web y Aplicación
- Prueba la funcionalidad de autocompletar en diferentes versiones de iOS
Consideraciones de Seguridad
Section titled “Consideraciones de Seguridad”- Las credenciales se almacenan en el llavero del sistema con indicadores de seguridad apropiados
- Los dominios asociados aseguran que las credenciales solo sean accesibles para aplicaciones autorizadas
- Sigue las pautas de seguridad de la plataforma para la gestión de credenciales
- Considera implementar medidas de seguridad adicionales para aplicaciones sensibles