Перед началом тестирования, приглашает Вас должны:
- Подключите приложение к вашему Проект Firebase, сделайте это от Firebase console.
- Включите динамические ссылки Firebase, сделайте это с Firebase console, открыв раздел «Динамические ссылки» и примите условия обслуживания, если это будет предложено.
- Add Firebase to your Android project.
- Добавить зависимость для 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 есть больше информации о том, как проверить вашу реализацию.
Я пробовал использовать оболочку adb, так как вы проверили бы ссылку на установку, но она, похоже, не работает. Для справки: 'am broadcast -a com.android.vending.INSTALL_REFERRER -n {com.your.package} /com.tune.TuneTracker --es referrer" test_referrer = test "' – staackuser2
Я знаю, что это не полезный комментарий , больше напыщенности: я нашел тестирование для firebase довольно дрянной, как в: полной запоздалой мысли ....Я надеюсь, что это улучшится со временем, хотя, поскольку они сделали эти фантастические кодеки и т. д. (которые я признаю, действительно здорово) – Creos
@Creos согласился. я был немного потрясен отсутствием документации и примеров. Я видел те, что были на Github, но этот вопрос является примером фактического варианта использования, который, по их словам, поддерживает, но на самом деле не говорит, как это сделать. – staackuser2