Wenn Ihre App, die Smart Lock für Passwörter verwendet, eine Nutzerdatenbank mit Ihrer Website teilt oder 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 können.
Wenn Sie eine App mit einer Website verknüpfen möchten, müssen Sie Verknüpfungen deklarieren, indem Sie auf Ihrer Website eine JSON-Datei mit Digital Asset Links hosten und dem Manifest Ihrer App einen Link zur Digital Asset Link-Datei hinzufügen.
Wenn du auf deiner Website eine Erklärung für Links zu digitalen Assets hostest, kannst du auf deiner Website unter Android 8.0 und höher auch AutoFill-Daten für deine App freigeben.
Voraussetzungen
Die Anmeldedomain Ihrer Website muss über HTTPS verfügbar sein.
App mit Website verknüpfen
Erstellen Sie eine JSON-Datei mit Digital Asset Links.
Wenn du beispielsweise erklären möchtest, dass die Website
https://signin.example.com
und eine Android-App mit dem Paketnamencom.example
gemeinsame Anmeldedaten teilen können, erstelle eine Datei mit dem Namenassetlinks.json
mit folgendem 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 mit einem oder mehreren Strings, die die erklärte Beziehung beschreiben. Wenn Sie erklären möchten, dass Anwendungen und Websites Anmeldedaten teilen, geben Sie den Stringdelegate_permission/common.get_login_creds
an.Das Feld
target
ist ein Objekt, das das Asset angibt, für das 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 vollständig qualifiziert sein und optional_port muss weggelassen werden, wenn Sie Port 443 für HTTPS verwenden.
Ein
site
-Ziel kann nur eine Stammdomain sein. Sie können eine Anwendungsverknüpfung nicht auf ein bestimmtes Unterverzeichnis beschränken. Die URL darf keinen Pfad enthalten, z. B. einen Schrägstrich.Subdomains werden nicht als übereinstimmend betrachtet. Wenn Sie domain also als
www.example.com
angeben, ist die Domainwww.counter.example.com
nicht mit Ihrer Anwendung verknüpft.Die folgenden Felder identifizieren eine Android-App:
namespace
android_app
package_name
Der Paketname, der im Manifest der App deklariert ist. Beispiel: com.example.android
sha256_cert_fingerprints
Die SHA256-Fingerabdrücke des Signaturzertifikats Ihrer App. Du kannst den folgenden Befehl verwenden, um den Fingerabdruck zu generieren: $ keytool -list -v -keystore my-release-key.keystore
Weitere Informationen findest du in der Referenz zu digitalen Assets.
Hosten Sie die Digital Asset Link-JSON-Datei unter dem folgenden 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 im JSON-Format vorliegen. Der Server muss einen
Content-Type: application/json
-Header in der Antwort senden.Achte darauf, dass dein Host Google das Abrufen deiner Digital Asset Link-Datei erlaubt. Wenn du eine
robots.txt
-Datei hast, muss der Googlebot-Agent/.well-known/assetlinks.json
abrufen können. Die meisten Websites können einfach jedem automatischen Agent das Abrufen von Dateien im Pfad/.well-known/
erlauben, sodass 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. Derasset_statements
-String ist ein JSON-Objekt, das die zu ladendenassetlinks.json
-Dateien angibt. Sie müssen alle Apostrophe und Anführungszeichen im String maskieren. 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 auf dem öffentlichen Kanal veröffentlicht werden, damit die Verknüpfungen abgerufen werden können.
Optional: Füllen Sie das Zuordnungsformular für Smart Lock für Passwörter aus und geben Sie an, dass Sie den Prozess ausgeführt haben. Google prüft regelmäßig, ob die über das Formular eingereichten Partnerschaften tatsächlich funktionieren, und setzt sich gegebenenfalls mit Ihnen in Verbindung.
Wenn die Bestätigung abgeschlossen ist, können Nutzer Ihrer App ihre Anmeldedaten entweder in Ihrer App oder auf Ihrer Website speichern und automatisch in beiden angemeldet werden.
Beispiel: Mehrere Apps mit einer Website verknüpfen
Du kannst mehrere Apps mit einer Website verknüpfen, indem du jede App in der Digital Asset Link-Datei angibst. Wenn du beispielsweise die Anwendungen com.example
und com.example.pro
mit der Website unter https://signin.example.com/
verknüpfen möchtest, gib beide Apps 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
Du kannst Apps mit mehreren Websites verknüpfen, indem du die einzelnen Websites in der Digital Assets Link-Datei angibst und die Datei auf jeder Website hostet. Wenn du beispielsweise die Anwendungen 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 die Anwendungen als auch die 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 der unter https://m.example.com/.well-known/assetlinks.json
gehosteten 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>