Решение проблемы «assetlinks.json не работает»: методы и примеры кода

«assetlinks.json не работает» — часто встречающаяся проблема при попытке установить связи цифровых активов между приложением Android и веб-сайтом. Чтобы решить эту проблему, вы можете попробовать несколько методов. Вот несколько потенциальных решений с примерами кода:

  1. Проверьте файл assetslinks.json:

    • Убедитесь, что файл assetslinks.json правильно отформатирован и содержит соответствующее содержимое. Его следует разместить в каталоге.well-known в корне вашего сайта.
    • Вот пример правильно структурированного файла assetslinks.json:
      [
      {
      "relation": ["delegate_permission/common.handle_all_urls"],
      "target": {
       "namespace": "android_app",
       "package_name": "your.package.name",
       "sha256_cert_fingerprints": ["your_app_fingerprint"]
      }
      }
      ]
  2. Настройте приложение для Android:

    • Убедитесь, что в файле манифеста вашего приложения Android имя пакета совпадает с именем, указанным в файле assetslinks.json.
    • Включите следующий фильтр намерений в тег активности файла манифеста вашего приложения:
      <intent-filter>
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT" />
      <category android:name="android.intent.category.BROWSABLE" />
      <data android:scheme="https"
           android:host="yourwebsite.com" />
      </intent-filter>
  3. Проверьте отпечаток сертификата подписи приложения:

    • Убедитесь, что отпечаток сертификата SHA-256 в файле assetslinks.json совпадает с отпечатком сертификата подписи вашего приложения.
    • Чтобы получить отпечаток пальца, вы можете использовать в терминале следующую команду:
      keytool -list -v -keystore your_keystore.jks -alias your_alias
  4. Проверьте связь с объектом:

    • После выполнения описанных выше шагов вы можете проверить, работает ли связь с объектом должным образом, с помощью следующей команды:
      adb shell am start -a android.intent.action.VIEW -d "https://yourwebsite.com" -c android.intent.category.BROWSABLE