Wenn Ihre App, die Smart Lock für Passwörter verwendet, eine Nutzerdatenbank mit Ihrer Website teilt oder wenn Ihre App und Ihre Website föderierte Anmeldeanbieter wie Google Log-in verwenden, können Sie die App mit der Website verknüpfen, sodass Nutzer ihre Anmeldedaten einmal speichern und sich dann automatisch sowohl in der App als auch auf der Website anmelden.
Wenn Sie eine App mit einer Website verknüpfen möchten, müssen Sie Verknüpfungen deklarieren, indem Sie eine JSON-Datei mit Digital Asset Links auf Ihrer Website hosten und einen Link zur Digital Asset Link-Datei in das Manifest Ihrer App einfügen.
Wenn du eine Erklärung zu Digital Asset Links auf deiner Website hostest, können dort auch Autofill-Daten mit deiner App geteilt werden, wenn Android 8.0 oder höher ausgeführt wird.
Voraussetzungen
Die Anmeldedomain Ihrer Website muss über HTTPS verfügbar sein.
App mit Ihrer Website verknüpfen
Erstellen Sie eine Digital Asset Links-JSON-Datei.
Wenn Sie beispielsweise angeben möchten, dass die Website
https://signin.example.com
und eine Android-App mit dem Paketnamencom.example
Anmeldedaten freigeben können, erstellen Sie eine Datei mit dem Namenassetlinks.json
und dem folgenden Inhalt:[{ "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" ] } }]
Das Feld
relation
ist ein Array aus einem oder mehreren Strings, die die deklarierte Beziehung beschreiben. Geben Sie den Stringdelegate_permission/common.get_login_creds
an, um zu deklarieren, dass Anwendungen und Websites Anmeldedaten gemeinsam nutzen.Das Feld
target
ist ein Objekt, das den Inhalt angibt, für den die Deklaration gilt. Die folgenden Felder identifizieren eine Website:namespace
web
site
Die URL der Website im Format
https://domain[:optional_port]
, z. B.https://www.example.com
.domain muss voll qualifiziert sein und optional_port muss weggelassen werden, wenn Port 443 für HTTPS verwendet wird.
Ein
site
-Ziel kann nur eine Stammdomain sein. Eine Anwendungsverknüpfung kann nicht auf ein bestimmtes Unterverzeichnis beschränkt werden. Die URL darf keinen Pfad enthalten, z. B. keinen Schrägstrich.Subdomains werden nicht als übereinstimmend betrachtet. Wenn Sie also domain als
www.example.com
angeben, wird die Domainwww.counter.example.com
nicht mit Ihrer App verknüpft.Die folgenden Felder identifizieren eine Android-App:
namespace
android_app
package_name
Der im Manifest der App deklarierte Paketname. Beispiel: com.example.android
sha256_cert_fingerprints
Die SHA256-Fingerabdrücke des Signaturzertifikats Ihrer App. Sie können den folgenden Befehl verwenden, um den Fingerabdruck zu generieren: $ keytool -list -v -keystore my-release-key.keystore
Weitere Informationen finden Sie in der Referenz zu Digital Asset Links.
Hosten Sie die Digital Assets Link-JSON-Datei an folgendem Speicherort in der Anmeldedomain:
https://domain[:optional_port]/.well-known/assetlinks.json
Wenn Ihre Anmeldedomain beispielsweise
signin.example.com
lautet, hosten Sie die JSON-Datei unterhttps://signin.example.com/.well-known/assetlinks.json
.Der MIME-Typ für die Digital Assets Link-Datei muss JSON sein. Achten Sie darauf, dass der Server in der Antwort einen
Content-Type: application/json
-Header sendet.Prüfe, ob dein Host Google erlaubt, deine Digital Asset Link-Datei abzurufen. Wenn du eine
robots.txt
-Datei hast, muss sie es dem Googlebot-Agent ermöglichen,/.well-known/assetlinks.json
abzurufen. Auf den meisten Websites kann jeder automatische Agent Dateien im Pfad/.well-known/
abrufen, damit andere Dienste auf die Metadaten in diesen Dateien zugreifen können:User-agent: * Allow: /.well-known/
Deklarieren Sie die Verknüpfung in der Android-App.
Fügen Sie der Manifestdatei unter
<application>
die folgende Zeile hinzu:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
Fügen Sie der Datei
strings.xml
eineasset_statements
-Stringressource hinzu. Der Stringasset_statements
ist ein JSON-Objekt, das die zu ladendenassetlinks.json
-Dateien angibt. Apostrophe und Anführungszeichen, die Sie im String verwenden, müssen mit Escapezeichen versehen werden. Beispiel:<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
Veröffentlichen Sie die App im Google Play Store. Es muss im öffentlichen Kanal veröffentlicht werden, damit Zuordnungen aufgenommen werden können.
(Optional) Füllen Sie das Affiliate-Formular für Smart Lock for Passwords aus und reichen Sie es ein, um anzugeben, dass Sie den Vorgang ausgeführt haben. Google überprüft regelmäßig, ob über das Formular eingereichte Mitgliedschaften tatsächlich funktionieren, und kann dich bei Problemen kontaktieren.
Wenn die Bestätigung abgeschlossen ist, können Nutzer Ihrer Anwendung ihre Anmeldedaten entweder in der Anwendung oder auf Ihrer Website speichern und werden automatisch in beiden angemeldet.
Beispiel: Mehrere Apps mit einer Website verknüpfen
Sie können mehrere Apps mit einer Website verknüpfen, indem Sie jede App in der Datei „Digital Assets Link“ angeben. Wenn du beispielsweise die Apps com.example
und com.example.pro
mit der Website unter https://signin.example.com/
verknüpfen möchtest, gib beide Anwendungen in der unter https://signin.example.com/.well-known/assetlinks.json
gehosteten JSON-Datei an:
[{
"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"
]
}
}]
Deklarieren Sie dann die Verknüpfung in beiden Apps:
Fügen Sie der Manifestdatei unter
<application>
die folgende Zeile hinzu:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
Fügen Sie der Datei
strings.xml
die folgende Stringressource hinzu:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>
Beispiel: Apps mit mehreren Websites verknüpfen
Sie können Apps mit mehreren Websites verknüpfen, indem Sie jede Website in der Digital Asset Link-Datei angeben und die Datei auf jeder Website hosten. Wenn du beispielsweise die Apps com.example
und com.example.pro
mit der Website unter https://signin.example.com/
und https://m.example.com/
verknüpfen möchtest, gib sowohl Apps als auch beide Websites in der JSON-Datei an, die unter https://signin.example.com/.well-known/assetlinks.json
gehostet wird:
[{
"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"
]
}
}]
Fügen Sie dann in die unter https://m.example.com/.well-known/assetlinks.json
gehostete JSON-Datei die primäre Digital Asset Links-Datei ein:
[{
"include": "https://signin.example.com/.well-known/assetlinks.json"
}]
Deklarieren Sie abschließend die Verknüpfung in beiden Apps:
Fügen Sie der Manifestdatei unter
<application>
die folgende Zeile hinzu:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
Fügen Sie der Datei
strings.xml
die folgende Stringressource hinzu:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>