Se la tua app che utilizza Smart Lock per password condivide un database di utenti con il tuo o se la tua app e il tuo sito web utilizzano provider di accesso federati quali come Accedi con Google, puoi associare l'app al sito web in modo che salvano le proprie credenziali una volta e poi accedono automaticamente sia dell'app e del sito web.
Per associare un'app a un sito web, dichiara le associazioni ospitando un Digital Asset Links sul tuo sito web e aggiungendo un link al file Digital Asset Link al file manifest della tua app.
Se ospiti una dichiarazione relativa ai link agli asset digitali sul tuo sito web, attivi anche sul tuo sito web per condividere la funzionalità di compilazione automatica i dati con la tua app con Android 8.0 e versioni successive.
Prerequisiti
Il dominio di accesso del tuo sito web deve essere disponibile tramite HTTPS.
Associa la tua app al tuo sito web
Crea un file JSON Digital Asset Links.
Ad esempio, per dichiarare che il sito web
https://signin.example.com
e un'app per Android con nome di pacchettocom.example
può condividere l'accesso credenziali, crea un file denominatoassetlinks.json
con quanto segue contenuti:[{ "relation": ["delegate_permission/common.get_login_creds"], "target": { "namespace": "web", "site": "https://signin.example.com" } }, { "relation": ["delegate_permission/common.get_login_creds"], "target": { "namespace": "android_app", "package_name": "com.example", "sha256_cert_fingerprints": [ "F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B" ] } }]
Il campo
relation
è un array di una o più stringhe che descrivono il relazione dichiarata. Per dichiarare che app e siti condividono l'accesso credenziali, specifica la stringadelegate_permission/common.get_login_creds
.Il campo
target
è un oggetto che specifica la risorsa oggetto della dichiarazione a cui si applica. I seguenti campi identificano un sito web:namespace
web
site
L'URL del sito web, nel formato
https://domain[:optional_port]
; della ad esempiohttps://www.example.com
.domain deve essere pienamente idonea. e Se si utilizza la porta 443 per, è necessario omettere optional_port HTTPS.
Un target
site
può essere solo un dominio principale: non puoi Limita l'associazione di un'app a una sottodirectory specifica. Non includere un percorso dell'URL, ad esempio una barra finale.I sottodomini non vengono considerati corrispondenti, ovvero se specifichi domain come
www.example.com
, il dominiowww.counter.example.com
non è associato alla tua app.I seguenti campi identificano un'app per Android:
namespace
android_app
package_name
Il nome del pacchetto dichiarato nel file manifest dell'app. Ad esempio: com.example.android
sha256_cert_fingerprints
Le fingerprint SHA256 del certificato di firma della tua app. Puoi utilizza questo comando per generare l'impronta: $ keytool -list -v -keystore my-release-key.keystore
Consulta il riferimento Digital Asset Links per maggiori dettagli.
Ospita il file JSON Digital Resources Link nella seguente posizione sulla dominio di accesso:
https://domain[:optional_port]/.well-known/assetlinks.json
Ad esempio, se il dominio di accesso è
signin.example.com
, ospita il file JSON all'indirizzohttps://signin.example.com/.well-known/assetlinks.json
.Il tipo MIME per il file Digital Asset Link deve essere JSON. Assicurati che il server invia un'intestazione
Content-Type: application/json
nella risposta.Assicurati che l'host consenta a Google di recuperare il tuo Digital Asset Link . Se hai un file
robots.txt
, questo deve consentire all'agente Googlebot di recupera/.well-known/assetlinks.json
. La maggior parte dei siti consente semplicemente agente automatico di recuperare i file nel percorso/.well-known/
in modo che possono accedere ai metadati contenuti nei file:User-agent: * Allow: /.well-known/
Dichiara l'associazione nell'app per Android.
Aggiungi la seguente riga al file manifest in
<application>
:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
Aggiungi una risorsa stringa
asset_statements
al filestrings.xml
. La stringaasset_statements
è un oggetto JSON che specificaassetlinks.json
file da caricare. Devi evitare qualsiasi apostrofi le virgolette utilizzate nella stringa. Ad esempio:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>
> GET /.well-known/assetlinks.json HTTP/1.1 > User-Agent: curl/7.35.0 > Host: signin.example.com < HTTP/1.1 200 OK < Content-Type: application/json
Pubblica l'app sul Google Play Store. Deve essere rilasciato pubblicamente canale per la selezione delle associazioni.
(Facoltativo) Completa e invia Modulo di affiliazione di Smart Lock per password per indicare che hai partecipato durante il processo. Google controlla periodicamente se ci sono affiliazioni il modulo funziona e potrebbe contattarti in caso di per risolvere problemi di produzione e facilità d'uso.
Al termine della verifica, gli utenti della tua app potranno salvare le proprie credenziali nella tua app o sul tuo sito web e ad accedere automaticamente a entrambe.
Esempio: associare più app a un sito web
Puoi associare più app a un sito web specificando ogni app nella sezione
File Digital Asset Link. Ad esempio, per associare com.example
e
com.example.pro
app con il sito all'indirizzo https://signin.example.com/
, specifica
entrambe le app nel file JSON ospitato
https://signin.example.com/.well-known/assetlinks.json
:
[{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "web",
"site": "https://signin.example.com"
}
},{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "android_app",
"package_name": "com.example",
"sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
]
}
},{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "android_app",
"package_name": "com.example.pro",
"sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
]
}
}]
Quindi, dichiara l'associazione in entrambe le app:
Aggiungi la seguente riga al file manifest in
<application>
:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
Aggiungi la seguente risorsa di stringa al file
strings.xml
:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>
Esempio: associare le app a più siti web
Puoi associare le app a più siti web specificando ciascun sito web nel
Digital Asset Link e hosting del file su ciascun sito web. Ad esempio, per
associare le app com.example
e com.example.pro
al sito all'indirizzo
https://signin.example.com/
e https://m.example.com/
, specifica
le app e i siti nel file JSON ospitato su
https://signin.example.com/.well-known/assetlinks.json
:
[{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "web",
"site": "https://signin.example.com"
}
},{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "web",
"site": "https://m.example.com"
},
},{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "android_app",
"package_name": "com.example",
"sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
]
}
},{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "android_app",
"package_name": "com.example.pro",
"sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
]
}
}]
Quindi, nel file JSON ospitato
https://m.example.com/.well-known/assetlinks.json
, includi il segmento di pubblico principale
File link asset:
[{
"include": "https://signin.example.com/.well-known/assetlinks.json"
}]
Infine, dichiara l'associazione in entrambe le app:
Aggiungi la seguente riga al file manifest in
<application>
:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
Aggiungi la seguente risorsa di stringa al file
strings.xml
:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>