Jeśli Twoja aplikacja, która korzysta z funkcji Smart Lock na hasła, korzysta z bazy danych użytkownika lub jeśli aplikacja bądź witryna korzystają z usług sfederowanych dostawców logowania, jako Logowania przez Google – możesz powiązać aplikację z witryną, aby użytkownicy zapisują swoje dane logowania raz, a następnie automatycznie logują się zarówno aplikacji i strony internetowej.
Aby powiązać aplikację z witryną, zadeklaruj powiązania, hostując plik JSON Digital Asset Links w Twojej witrynie, dodając link do pliku Digital Asset Link do pliku manifestu aplikacji.
Jeśli umieścisz w swojej witrynie deklarację dotyczącą linków cyfrowych, Twoją witrynę, aby udostępnić autouzupełnianie z aplikacją na urządzeniach z Androidem 8.0 lub nowszym.
Wymagania wstępne
Domena logowania w Twojej witrynie musi być dostępna przez HTTPS.
Powiąż aplikację z witryną
- Utwórz plik JSON Digital Asset Links. - Aby np. zadeklarować, że witryny - https://signin.example.comi aplikacja na Androida z nazwą pakietu- com.examplemoże współdzielić logowanie dane logowania, utwórz plik o nazwie- assetlinks.jsonz następującymi treść:- [{ "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" ] } }]- Pole - relationjest tablicą jednego lub większej liczby ciągów tekstowych opisujących relacji. Deklarowanie, że aplikacje i witryny korzystają z tego samego loginu dane logowania, określ ciąg- delegate_permission/common.get_login_creds- Pole - targetto obiekt określający zasób, który zgodnie z deklaracją . Te pola identyfikują witrynę:- namespace- web- site- Adres URL witryny w formacie - https://domain[:optional_port]; w przypadku na przykład- https://www.example.com.- domain musi być w pełni kwalifikowany. Wartość optional_port należy pominąć, jeśli używasz portu 443 w HTTPS. - Elementem docelowym - sitemoże być tylko domena główna: nie można by ograniczyć powiązanie aplikacji do konkretnego podkatalogu. Nie dodawaj np. ukośnik na końcu adresu URL.- Subdomeny nie są uważane za dopasowane: to znaczy, jeśli określisz atrybut domain jako - www.example.com, domena Usługa- www.counter.example.comnie jest powiązana z Twoją aplikacją.- Te pola identyfikują aplikację na Androida: - namespace- android_app- package_name- Nazwa pakietu zadeklarowana w pliku manifestu aplikacji. Przykład: - com.example.android- sha256_cert_fingerprints- Odciski cyfrowe SHA256 certyfikatu podpisywania aplikacji. Dostępne opcje użyj następującego polecenia, aby wygenerować odcisk cyfrowy: - $ keytool -list -v -keystore my-release-key.keystore - Zapoznaj się z informacjami o linkach do zasobów cyfrowych. . 
- Umieść plik JSON protokołu Digital Assets Link w następującej lokalizacji na stronie domena logowania: - https://domain[:optional_port]/.well-known/assetlinks.json - Jeśli na przykład Twoja domena logowania to - signin.example.com, hostuj plik JSON pod adresem- https://signin.example.com/.well-known/assetlinks.json.- Plik Digital Assets Link musi mieć typ MIME JSON. Upewnij się, serwer wysyła w odpowiedzi nagłówek - Content-Type: application/json.
- Upewnij się, że Twój dostawca hostingu pozwala Google na pobranie Twojego linku do zasobu cyfrowego . Jeśli masz plik - robots.txt, musi on zezwalać agentowi Googlebot na pobierz- /.well-known/assetlinks.json. Większość witryn pozwala na automatyczny klient do pobierania plików w ścieżce- /.well-known/, tak by pozostałe usługi mogą uzyskać dostęp do metadanych w tych plikach:- User-agent: * Allow: /.well-known/ 
- Zadeklaruj powiązanie w aplikacji na Androida. - Dodaj ten wiersz do pliku manifestu w - <application>:- <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
- Dodaj zasób ciągu znaków - asset_statementsdo pliku- strings.xml. Ciąg znaków- asset_statementsto obiekt JSON, który określa Pliki (- assetlinks.json) do wczytania. Musisz uciec od wszelkich apostrofów cudzysłowów używanych w ciągu znaków. Na przykład:- <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
 
- Opublikuj aplikację w Sklepie Google Play. muszą być dostępne publicznie. aby umożliwić promowanie powiązań. 
- (Opcjonalnie) Wypełnij i prześlij Formularz połączenia z funkcją Smart Lock na hasła, aby potwierdzić, że korzystasz z tej usługi. z całego procesu. Od czasu do czasu Google sprawdza, czy powiązania przesłany za pomocą formularza faktycznie działa i może się z Tobą skontaktować w przypadku . 
Po zakończeniu weryfikacji użytkownicy aplikacji będą mogli zapisać swoje dane logowania do aplikacji lub witryny i automatycznie logować się w obu tych usługach.
Przykład: powiązanie wielu aplikacji z witryną
Możesz powiązać wiele aplikacji z witryną, określając każdą aplikację w
Plik Digital Assets Link. Aby na przykład powiązać com.example i
com.example.pro aplikacje z witryną pod adresem https://signin.example.com/ – określ
obie aplikacje w pliku JSON przechowywanym na
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"
    ]
  }
}]
Następnie zadeklaruj powiązanie w obu aplikacjach:
- Dodaj ten wiersz do pliku manifestu w - <application>:- <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
- Dodaj do pliku - strings.xmlten zasób z ciągami znaków:- <string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>
Przykład: powiązanie aplikacji z wieloma witrynami
Możesz powiązać aplikacje z wieloma witrynami, określając każdą z nich w
Plik Digital Assets Link i hosting go w każdej witrynie. Aby na przykład:
powiązanie aplikacji com.example i com.example.pro z witryną pod adresem
https://signin.example.com/ i https://m.example.com/, określ
aplikacje i obie witryny w pliku JSON przechowywanym na
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"
    ]
  }
}]
Następnie w pliku JSON przechowywanym na
https://m.example.com/.well-known/assetlinks.json, uwzględnij podstawowy
Plik linków zasobów:
[{
  "include": "https://signin.example.com/.well-known/assetlinks.json"
}]
Na koniec zadeklaruj powiązanie w obu aplikacjach:
- Dodaj ten wiersz do pliku manifestu w - <application>:- <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
- Dodaj do pliku - strings.xmlten zasób z ciągami znaków:- <string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>