Как вы протестируете приглашение в firebase?

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

Я пробовал (с различными вариантами)

adb shell am start -W -a android.intent.action.VIEW -d "https://play.google.com/store/apps/details?id=com.gonevertical.chatterbox\\&pcampaignid=appinvite_\\&referrer=deep_link_id%3Dhttps://gonevetical.com/chatterbox/invite/group/-KJnkQfRjZfAH9-U_U4a%26invitation_id%3D20832144509-9642991a-de62-4d40-ba93-b991208c2d31" com.gonevertical.chatterbox

Проект https://github.com/branflake2267/chatterbox/blob/master/android/app/src/main/AndroidManifest.xml

Ответы

Ответ 1

Перед началом тестирования приглашения вы должны:

  • Подключите приложение к проекту Firebase, сделайте это с помощью консоли Firebase.
  • Включить динамические ссылки Firebase, сделайте это из Firebase console, открыв раздел "Динамические ссылки" и примите условия обслуживания, если будет предложено.
  • Добавить Firebase в проект Android.
  • Добавьте зависимость для Firebase Invites к файлу build.gradle на уровне приложения:

Gradle файл:

compile 'com.google.firebase:firebase-invites:9.0.2'

Отправить приглашения

Создайте Intent с помощью класса AppInviteInvitation.IntentBuilder:

private void onInviteClicked() {
    Intent intent = new AppInviteInvitation.IntentBuilder(getString(R.string.invitation_title))
            .setMessage(getString(R.string.invitation_message))
            .setDeepLink(Uri.parse(getString(R.string.invitation_deep_link)))
            .setCustomImage(Uri.parse(getString(R.string.invitation_custom_image)))
            .setCallToActionText(getString(R.string.invitation_cta))
            .build();
    startActivityForResult(intent, REQUEST_INVITE);
}

Запуск намерения AppInviteInvitation открывает выбор контакта, в котором пользователь выбирает приглашаемые контакты. Приглашения отправляются по электронной почте или по SMS. После того, как пользователь выбирает контакты и отправляет приглашение, ваше приложение получает обратный вызов onActivityResult:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Log.d(TAG, "onActivityResult: requestCode=" + requestCode + ", resultCode=" + resultCode);

    if (requestCode == REQUEST_INVITE) {
        if (resultCode == RESULT_OK) {
            // Get the invitation IDs of all sent messages
            String[] ids = AppInviteInvitation.getInvitationIds(resultCode, data);
            for (String id : ids) {
                Log.d(TAG, "onActivityResult: sent invitation " + id);
            }
        } else {
            // Sending failed or it was canceled, show failure message to the user
            // ...
        }
    }
}

Получить приглашения

Когда пользователь получает приглашение, если пользователь еще не установил приложение, он может выбрать установку приложения из Google Play Store. Затем, после того, как приложение установлено или приложение уже установлено, приложение запускается и получает URL-адрес своего контента, если вы его отправили. Чтобы получить URL-адрес вашего контента приложения, вызовите метод getInvitation:

@Override
protected void onCreate(Bundle savedInstanceState) {
    // ...

    // Create an auto-managed GoogleApiClient with access to App Invites.
    mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addApi(AppInvite.API)
            .enableAutoManage(this, this)
            .build();

    // Check for App Invite invitations and launch deep-link activity if possible.
    // Requires that an Activity is registered in AndroidManifest.xml to handle
    // deep-link URLs.
    boolean autoLaunchDeepLink = true;
    AppInvite.AppInviteApi.getInvitation(mGoogleApiClient, this, autoLaunchDeepLink)
            .setResultCallback(
                    new ResultCallback<AppInviteInvitationResult>() {
                        @Override
                        public void onResult(AppInviteInvitationResult result) {
                            Log.d(TAG, "getInvitation:onResult:" + result.getStatus());
                            if (result.getStatus().isSuccess()) {
                                // Extract information from the intent
                                Intent intent = result.getInvitationIntent();
                                String deepLink = AppInviteReferral.getDeepLink(intent);
                                String invitationId = AppInviteReferral.getInvitationId(intent);

                                // Because autoLaunchDeepLink = true we don't have to do anything
                                // here, but we could set that to false and manually choose
                                // an Activity to launch to handle the deep link here.
                                // ...
                            }
                        }
                    });
}

ВАЖНО: Код выше требует подключенного GoogleApiClient с включенным AppInvite.API.

Если параметр launchDeepLink true, приложение автоматически связывается с URL-адресом вашего содержимого приложения, которое ваше приложение может обрабатывать нормально. Если параметр launchDeepLink false, вы можете вручную запустить намерение, возвращенное getInvitationIntent, чтобы обрабатывать URL-адрес, когда это необходимо.

Подробнее о hot Отправить и получить Firebase Invites из вашего приложения для Android.

Тестирование ссылок в Android Studio

Также вы можете использовать функцию Deep Link Testing для функции Android Studio версии 2.x, чтобы убедиться, что ваше приложение можно запустить с указанным URL. Чтобы установить это, сначала выберите Запустить > Изменить конфигурации в разделе Android-приложение > Общие. Чтобы проверить URL-адрес HTTP, выберите Глубокая ссылка в Параметры запуска, а затем введите URL-адрес для проверки. Если ссылка успешна, приложение должно запускаться в эмуляторе или на подключенном устройстве. В противном случае в окне Выполнить появится сообщение об ошибке.

Android Debug Bridge

Проверьте, что ваши ссылки открывают ваше приложение с помощью Android Debug Bridge, где {URL} представляет URL-адрес HTTP, объявленный в вашем манифесте приложения.

adb shell am start -a android.intent.action.VIEW -d "{URL}" com.example.android

В ссылка есть дополнительная информация о том, как протестировать вашу реализацию.

Ответ 2

Я протестировал их, создав ссылки в консоли FireBase, скопировав ссылки (ссылки) на электронную почту, открыв письмо на устройстве и нажав ссылки на устройстве. Вы можете проверить приложение таким образом.

Если вы хотите отлаживать ссылки, сделайте то же самое, но скопируйте полную ссылку на электронную почту, а не короткую, и поэкспериментируйте с вариантами полной ссылки.

Ответ 3

Я нашел нижеследующее в ссылке, размещенной в комментарии ответа на победу. Он позволяет вам получить приглашение и протестировать ваш код обработки новой установки из приглашения.

Чтобы имитировать прием приглашения от друга, вы можете отправить приглашение, удалить тестовое приложение, а затем щелкнуть ссылку в своем электронном письме.

Это обычно отправляет вас в Play Store или App Store для загрузки приложения. Поскольку это тестовое приложение, оно будет ссылаться на несуществующую страницу хранилища.

После нажатия ссылки приглашения переустановите и запустите приложение на своем устройстве или эмуляторе и просмотрите приглашение, полученное на принимающей стороне.

Ответ 4

Мне просто нравилось staackuser2, с одним упоминанием. Вы можете опубликовать свое приложение в закрытой Alpha/Beta в Google Play. Добавьте себя и другую учетную запись электронной почты в список тестеров. Таким образом, приложение будет отображаться в Google Play для обоих устройств, зарегистрированных в качестве тестеров. Затем вы можете отправлять приглашения между двумя учетными записями. Нажав на ссылку в письме, вы попадете в приложение в App Store. Если вы установите его, вы можете проверить идентификатор приглашения (и, возможно, другую информацию о deeplink, такую ​​как промо-код и т.д.) При запуске приложения.