在开始邀请测试之前,您需要:
- 将您的应用连接到Firebase项目,请从Firebase控制台进行操作。
- 启用Firebase动态链接,请从Firebase控制台打开动态链接部分,并在提示时接受服务条款。
- 将Firebase添加到您的Android项目中。
- 在您的应用级
build.gradle
文件中添加Firebase Invites的依赖项:
Gradle文件:
compile 'com.google.firebase:firebase-invites:9.0.2'
发送邀请
使用AppInviteInvitation.IntentBuilder类构建一个Intent
:
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
意图将打开联系人选择器,用户选择要邀请的联系人。邀请通过电子邮件或短信发送。用户选择联系人并发送邀请后,您的应用程序将接收到回调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) {
String[] ids = AppInviteInvitation.getInvitationIds(resultCode, data);
for (String id : ids) {
Log.d(TAG, "onActivityResult: sent invitation " + id);
}
} else {
}
}
}
接收邀请
当用户收到邀请时,如果用户尚未安装该应用程序,则可以选择从Google Play商店安装应用程序。然后,在应用程序安装完成后,或者如果应用程序已经安装,则应用程序启动并接收其内容的URL(如果您发送了一个URL)。要接收应用程序内容的URL,请调用getInvitation
方法:
@Override
protected void onCreate(Bundle savedInstanceState) {
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(AppInvite.API)
.enableAutoManage(this, this)
.build();
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()) {
Intent intent = result.getInvitationIntent();
String deepLink = AppInviteReferral.getDeepLink(intent);
String invitationId = AppInviteReferral.getInvitationId(intent);
}
}
});
}
重要提示:上面的代码需要连接启用了AppInvite.API
的GoogleApiClient。
如果launchDeepLink
参数为true
,则应用程序会自动重新启动,带有指向您的应用程序内容的URL,您的应用程序可以正常处理。如果launchDeepLink
参数为false
,则可以手动启动由getInvitationIntent返回的意图,在适当时处理URL。
这里有更多关于如何从您的Android应用程序发送和接收Firebase邀请的信息。
在Android Studio中测试链接
您还可以使用Android Studio 2.x版本的深度链接测试功能来验证您的应用程序是否可以通过指定的URL启动。要设置此项功能,请首先从Android应用程序>常规部分选择运行>编辑配置。要测试HTTP URL,请在启动选项中选择深度链接,然后输入要测试的URL。如果链接成功,则应用程序应在模拟器或已连接设备上启动。否则,运行窗口中会出现错误消息。
Android调试桥
使用Android调试桥测试链接是否打开您的应用程序,其中{URL}
表示在您的应用程序清单中声明的HTTP URL。
adb shell am start -a android.intent.action.VIEW -d "{URL}" com.example.android
在链接中,有关于如何测试您的实现的更多信息。
am broadcast -a com.android.vending.INSTALL_REFERRER -n {com.your.package}/com.tune.TuneTracker --es referrer "test_referrer=test"
- staackuser2