Firebase Dynami c ссылка с флаттером: URL-адрес Deep Link не открывает приложение - PullRequest
0 голосов
/ 11 апреля 2020

Я попытался добавить динамическую c ссылку на мое приложение android (не опубликовано), которое находится в режиме отладки и работает на физическом устройстве. Настроил firebase, динамические ссылки c в консоли firebase. все работает как положено, кроме одного. При нажатии на ссылку (https://www.mywebsite.com/deep-link-page) непосредственно из любого места приложение не открывается. при нажатии на Dynami c ссылка https://myapp.page.link открывается приложение, как и ожидалось.

 final DynamicLinkParameters parameters = DynamicLinkParameters(
  uriPrefix: 'https://freshakaka.page.link',
  link: Uri.parse('https://freshakaka.page.link/helloworld'),
  androidParameters: AndroidParameters(
    packageName: 'com.freshakaka.flutter',
    minimumVersion: 0,
  ),
  dynamicLinkParametersOptions: DynamicLinkParametersOptions(
    shortDynamicLinkPathLength: ShortDynamicLinkPathLength.short,
  ),
  iosParameters: IosParameters(
    bundleId: 'com.google.FirebaseCppDynamicLinksTestApp.dev',
    minimumVersion: '0',
  ),
);

enter image description here

Как вы видите на изображении - https://kannadaclub.com/2019/10/17/seltos-50k-bookings/ - моя глубокая ссылка. при переходе по этой ссылке с мобильного всегда открывается сайт, а не приложение.

1 Ответ

2 голосов
/ 11 апреля 2020

Вам необходимо добавить это intent-filter при первом открытии в манифесте,

<activity android:name="your default activity">

        <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:host="freshakaka.page.link"
                android:scheme="https" />
        </intent-filter>

    </activity>

, чтобы уточнить:

Вам необходимо выполнить поиск AndroidManifest. xml в вашем проекте, когда вы обнаружите это, вы увидите что-то вроде этого

   <activity
        android:name=".MainActivity"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

Это первое открывающееся действие, потому что оно имеет intent-filter, которое содержит DEFAULT и BROWSABLE категории, что означает, что ваше приложение будет запускаться с этой активности, поэтому вам нужно добавить intent-filter, который я предоставил выше, например,

       <activity
        android:name=".MainActivity"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
        <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:host="freshakaka.page.link"
                android:scheme="https" />
        </intent-filter>

    </activity>

Кроме того, вы можете проверить это для более явного объяснения

https://firebase.google.com/docs/dynamic-links/android/receive

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...