Wenn Ihre App, die Smart Lock for Passwords 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 angeben, indem Sie eine Digital Asset Links-JSON-Datei auf Ihrer Website hosten und im Manifest Ihrer App einen Link zur Digital Asset Link-Datei hinzufügen.
Wenn du auf deiner Website eine Digital Asset Links-Erklärung hostest, können damit auch Autofill-Daten für deine App freigegeben werden, wenn diese unter 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 deklarieren 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 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 aus einem oder mehreren Strings, die die deklarierte Beziehung beschreiben. Wenn Sie angeben möchten, dass Apps und Websites Anmeldedaten gemeinsam nutzen, geben Sie den Stringdelegate_permission/common.get_login_creds
an.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]
. Beispiel: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 abschließenden Schrägstrich.Subdomains werden nicht als übereinstimmend angesehen. Wenn Sie also domain 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 im Manifest der App angegebene Paketname. Beispiel: com.example.android
sha256_cert_fingerprints
Die SHA256-Fingerabdrücke des Signaturzertifikats Ihrer App. Mit dem folgenden Befehl können Sie den Fingerabdruck 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 unter dem folgenden Speicherort in der Anmeldedomain:
https://domain[:optional_port]/.well-known/assetlinks.json
Wenn Ihre Anmeldedomain beispielsweise
signin.example.com
ist, 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üfen Sie, ob Ihr Host Google erlaubt, Ihre Digital Asset Link-Datei abzurufen. Wenn du eine
robots.txt
-Datei hast, muss sie dem Googlebot-Agent das Abrufen von/.well-known/assetlinks.json
ermöglichen. Die meisten Websites können einfach jedem automatischen Agent erlauben, Dateien im Pfad/.well-known/
abzurufen, damit andere Dienste auf die Metadaten in diesen Dateien zugreifen können:User-agent: * Allow: /.well-known/
Deklariere 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 im String 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. Sie muss im öffentlichen Kanal veröffentlicht werden, damit Verknüpfungen erfasst werden können.
Optional: Füllen Sie das Smart Lock for Passwords-Partnerformular aus und senden Sie es an uns, um zu bestätigen, dass Sie den Vorgang abgeschlossen haben. Google überprüft regelmäßig, ob über das Formular eingereichte Partnerschaften tatsächlich funktionieren. Bei Problemen werden Sie möglicherweise kontaktiert.
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. Um beispielsweise die Anwendungen com.example
und com.example.pro
mit der Website unter https://signin.example.com/
zu verknüpfen, geben Sie beide Anwendungen 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": "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 Assets Link-Datei angeben und die Datei auf jeder Website hosten. Wenn Sie 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öchten, geben Sie 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 JSON-Datei, die unter https://m.example.com/.well-known/assetlinks.json
gehostet wird, 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>