Обзор и настройка Custom links для Android и iOS во Flutter-приложении

💡 Усі статті, обговорення, новини про Mobile — в одному місці. Приєднуйтесь до Mobile спільноти!

Всем привет, меня зовут Алексей, я Flutter — разработчик. В этом наборе статей разберем Deep links, рассмотрим какие они есть, как их настраивать и использовать в Flutter приложении.

Всего будет 3 статьи:

  • Обзор и настройка Custom links для Android и iOS (текущая)
  • Настройка Universal links для iOS и App links для Android
  • Обработка в приложении с использованием Flutter и Redux

Начнем!

Deep links — это просто ссылки, похожие на обычные веб-ссылки, но позволяющие пользователю открыть приложение на телефоне, либо установить его. Как и веб-ссылки deep links могут содержать дополнительную информацию.

Для удобства будем использовать uni_links. Удобный пекедж, позволяющий за короткий срок все настроить.

Deep links делятся на два типа — Custom links и Universal links (для iOS, App links для Android).

Начнем с Custom links и сразу рассмотрим их плюсы и минусы:

Плюсы:
● Очень легкая настройка
● Не нужно настраивать ничего кроме приложения
● Не нужно наличие сайта / сервера

Минусы:
● Работают только при установленном приложении
● Многие мессенджеры не распознают такой тип ссылки как ссылку (например Telegram)
● Не перенаправляют на App Store и Play Market если нет установленного приложения
● Никак не взаимодействуют с вашим веб приложением (если оно есть)

Итак, если нас все устраивает переходим к настройке и использованию.

Custom links имеют вид [YOUR_SCHEME]://[YOUR_HOST], где [YOUR_SCHEM] и [YOUR_HOST] удобные для вас слова. Дальше для примеров будем использовать example для схемы и myapp.com для хоста. По итогу получаем ссылку example://myapp.com.

Но что с ней делать?

Android:

Переходим в android/app/src/main/AndroidManifest.xml и добавляем:

<manifest ...>
  <!-- ... other tags -->
	<application ...>
    <activity ...>
      <!-- ... other tags -->
			<intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
          android:scheme="example" // YOUR_SCHEME
          android:host="myapp.com" /> // YOUR_HOST
      </intent-filter>
    </activity>
  </application>
</manifest>

iOS:
Переходим в ios/Runner/Runner.entitlements:

<?xml ...>
<!-- ... other tags -->
<plist>
<dict>
  <!-- ... other tags -->
  <key>CFBundleURLTypes</key>
  <array>
    <dict>
      <key>CFBundleTypeRole</key>
      <string>Editor</string>
      <key>CFBundleURLName</key>
      <string>myapp.com</string> // YOUR_HOST
      <key>CFBundleURLSchemes</key>
      <array>
        <string>example</string> // YOUR_SCHEME
      </array>
    </dict>
  </array>
  <!-- ... other tags -->
</dict>
</plist>

И вуаля, ваше приложение будет открываться при нажатии на example://myapp.com/[ЧТО_УГОДНО_ДАЛЬШЕ].

О Custom Links и App links и их обработке поговорим в следующих частях.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному2
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

картинки больше занимают места, чем текст, сама тема в общем не большая, а вы ее еще и на 3 статьи разбили..

Довольно маленькими кусками, не очень информативно как-то получается
Но я очень рад видеть публикации по Flutter!
Буду ждать новых 🙂

Возможно вы правы, 2 и 3 части будут значительно объемнее. В любом случае спасибо❤️

Підписатись на коментарі