2016-06-14 2 views
14

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

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

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

+0

Я пробовал использовать оболочку adb, так как вы проверили бы ссылку на установку, но она, похоже, не работает. Для справки: 'am broadcast -a com.android.vending.INSTALL_REFERRER -n {com.your.package} /com.tune.TuneTracker --es referrer" test_referrer = test "' – staackuser2

+0

Я знаю, что это не полезный комментарий , больше напыщенности: я нашел тестирование для firebase довольно дрянной, как в: полной запоздалой мысли ....Я надеюсь, что это улучшится со временем, хотя, поскольку они сделали эти фантастические кодеки и т. д. (которые я признаю, действительно здорово) – Creos

+0

@Creos согласился. я был немного потрясен отсутствием документации и примеров. Я видел те, что были на Github, но этот вопрос является примером фактического варианта использования, который, по их словам, поддерживает, но на самом деле не говорит, как это сделать. – staackuser2

ответ

8

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

  1. Подключите приложение к вашему Проект Firebase, сделайте это от Firebase console.
  2. Включите динамические ссылки Firebase, сделайте это с Firebase console, открыв раздел «Динамические ссылки» и примите условия обслуживания, если это будет предложено.
  3. Add Firebase to your Android project.
  4. Добавить зависимость для Firebase предлагает к вашему приложению уровню 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 - Send and Receive Firebase Invites from Your Android App.

Link Тестирование в Android Studio

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

Android Debug Bridge

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

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

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

+0

Вся информация, которую вы только что упомянули, просто скопирована из установочных документов для приглашений Firebase (https://firebase.google.com/docs/invites/android). OP (и я) хочу знать, как вы можете имитировать установку приложения через ссылку приглашения. Прямо сейчас кажется, что единственный способ убедиться, что приглашение на работу ссылок - проверить, нажав ваше приложение в магазин воспроизведения. – Josh

+1

Обычно это отправляет вас в Play Store или App Store для загрузки приложения. Поскольку это тестовое приложение, оно будет ссылаться на несуществующую страницу хранилища. Другой альтернативой является попытка использовать [Firebase Invites Quickstart] (https://github.com/firebase/quickstart-cpp/blob/master/invites/testapp/readme.md). Он демонстрирует как отправку, так и прием Firebase Invites с использованием Firebase Invites C++ SDK. Когда вы впервые запускаете приложение, он будет проверять наличие динамической ссылки или приглашения и сообщать, сможет ли он получить приглашение. Также вы можете имитировать прием приглашения от друга. –

+0

только копия вставки из официальных документов –

3

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

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

1

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

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

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

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

0

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

 Смежные вопросы

  • Нет связанных вопросов^_^