Почему полная / длинная динамическая ссылка не получает / получает?

Я создаю глубокую / динамическую ссылку после этого проекта GitHub.

Вот ссылка, которая создается: https://appcode.app.goo.gl/?link=http://example.com/-example&apn=com.abc.xxx&amv=16&ad=0&extraParameter=null

Это метод, которым я пользуюсь, чтобы поделиться им:

private void shareDeepLink(String deepLink) {
            Intent intent = new Intent(Intent.ACTION_SEND);
            intent.setType("text/plain");
            intent.putExtra(Intent.EXTRA_SUBJECT, "Firebase Deep Link");
            intent.putExtra(Intent.EXTRA_TEXT, deepLink);

            itemView.getContext().startActivity(intent);
}

Это intent-filters определены в моем приложении AndroidManifest.xml файл:

<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="example.com" android:scheme="http"/>
      <data android:host="example.com" android:scheme="https"/>
</intent-filter>

Вот так я и пытаюсь получить общий deep-link:

boolean autoLaunchDeepLink = false;
        AppInvite.AppInviteApi.getInvitation(mGoogleApiClient, this, autoLaunchDeepLink)
                .setResultCallback(
                        new ResultCallback<AppInviteInvitationResult>() {
                            @Override
                            public void onResult(@NonNull AppInviteInvitationResult result) {
                                if (result.getStatus().isSuccess()) {
                                    // Extract deep link from Intent
                                    Intent intent = result.getInvitationIntent();
                                    final String deepLink = AppInviteReferral.getDeepLink(intent);
                                    Log.d("deepLinkMainActivity", deepLink);

                                } else {
                                    Log.d("getInvitation", "getInvitation: no deep link found.");
                                }
                            }
                        });

Вот что выходит из системы (получено по ссылке): http://example.com/-example

Как вы можете ясно видеть, я не получаю точную глубокую ссылку, которая была создана, и вместо этого я получаю ее измененную версию. Зачем?

И как я могу получить точно такую ​​же глубокую ссылку, которая была создана и распространена?

2 ответа

Вы правильно получаете диплинк

Это полная сгенерированная ссылка, содержащая информацию, такую ​​как apn: имя пакета вашего приложения, информация, которую нужно знать, например, какое приложение нужно открыть

https://appcode.app.goo.gl/?link=http://example.com/-example&apn=com.abc.xxx&amv=16&ad=0&extraParameter=null

Это ваша диплинк ссылка = http://example.com/-example. Итак, если вы хотите добавить больше параметров, вы можете сделать это здесь, как в примере ниже

ссылка = http://example.com/-example&blabla.

Таким образом, у вас есть это в результате https://appcode.app.goo.gl/?link=http://example.com/-example&blabla&apn=com.abc.xxx&amv=16&ad=0

Если вы хотите, эта часть может быть закодирована http://example.com/-example&blabla

Вы можете попробовать это и дайте мне знать.

Вы можете сослаться на эту информацию здесь https://firebase.google.com/docs/dynamic-links/android

Замещать

<data
       android:host="xxx.abc.com"
       android:scheme="https"/>

с

<data
       android:host="example.com"
       android:scheme="http"/>

Я тоже столкнулся с этой проблемой. Проблема заключалась в том, что я получаю ссылку "Длинная ссылка". Мы можем создать два типа ссылок из firebase:

  1. Короткая ссылка https://appcode.app.goo.gl/?email=abc@gmail.com
  2. Длинная ссылка https://appcode.app.goo.gl/?link=http://example.com/-example&apn=com.abc.xxx&amv=16&ad=0&extraParameter=null

Вот почему я столкнулся с этой проблемой. Я решил это, получив всю ссылку из

 Uri uriData = intent.data

И чтобы получить конкретный параметр запроса по ссылке:

  String email = uriData.getQueryParameter("email")

Надеюсь, это кому-нибудь поможет!!

Другие вопросы по тегам