Ответ 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
В ссылка есть дополнительная информация о том, как протестировать вашу реализацию.