動的リンクまたは招待をどのようにテストしますか?実行できる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
招待状のテストを開始する前に、次のことを行う必要があります。
build.gradle
ファイルに追加します。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
インテントを起動すると、連絡先チューザーが開き、ユーザーは招待する連絡先を選択します。招待状は電子メールまたは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
// ...
}
}
}
ユーザーが招待状を受け取ったときに、ユーザーがまだアプリをインストールしていない場合は、GooglePlayストアからアプリをインストールすることを選択できます。次に、アプリがインストールされた後、またはアプリがすでにインストールされている場合は、アプリが起動し、コンテンツのURLを送信した場合はその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.
// ...
}
}
});
}
重要:上記のコードでは、AppInvite.API
が有効になっている接続済み GoogleApiClient が必要です。
launchDeepLink
パラメーターがtrue
の場合、アプリはアプリのコンテンツへのURLで自動的に再起動します。これは、アプリが通常どおり処理できます。 launchDeepLink
パラメータがfalse
の場合、 getInvitationIntent によって返されるインテントを手動で開始して、必要に応じてURLを処理できます。
ホットから FirebaseInvitesをあなたのAndroid App から送受信する)に関する詳細情報は次のとおりです。
また、Android Studioバージョン2.x機能のディープリンクテスト機能を使用して、指定したURLでアプリを起動できることを確認できます。これを設定するには、最初に実行>構成の編集 Androidアプリケーション>一般セクションから。HTTPURLをテストするには、ディープリンクを選択します。 Launch Options で、テストするURLを入力します。リンクが成功した場合、アプリはエミュレーターまたは接続されたデバイスで起動します。それ以外の場合は、エラーメッセージが表示されます。 実行ウィンドウ。
Androidデバッグブリッジ
Android Debug Bridgeを使用して、リンクがアプリを開くことをテストします。ここで、{URL}
はアプリマニフェストで宣言されたHTTPURLを表します。
adb Shell am start -a Android.intent.action.VIEW -d "{URL}" com.example.Android
link で、実装をテストする方法についての詳細があります。
FireBaseコンソールでリンクを生成し、リンクをメールにコピーし、デバイスでメールを開いて、デバイス上のリンクをクリックすることで、それらをテストしました。その方法でアプリを確認できます。
リンクをデバッグする場合も同じようにしますが、短いリンクではなく完全なリンクを電子メールにコピーして、完全なリンクのバリエーションを試してください。
賞金獲得の回答のコメントに投稿されたリンクで、以下を見つけました。これにより、招待状を受け取り、招待状からの新規インストールを処理するコードをテストできます。
友人からの招待状の受信をシミュレートするには、自分に招待状を送信し、テストアプリをアンインストールしてから、電子メール内のリンクをクリックします。
これにより、通常、アプリをダウンロードするためにPlayストアまたはAppStoreに移動します。これはテストアプリであるため、存在しないストアページにリンクします。
招待リンクをクリックした後、デバイスまたはエミュレーターにアプリを再インストールして実行し、受信側でフェッチされた招待状を確認します。
私はstaackuser2と同じように、1つの言及がありました。 GooglePlayのクローズドアルファ/ベータでアプリを公開できます。テスターリストに自分と別のメールアカウントを追加します。そうすれば、アプリはテスターとして登録された両方のデバイスのGooglePlayに表示されます。次に、2つのアカウント間で招待状を送信できます。メール内のリンクをクリックすると、AppStoreのアプリに移動します。インストールすると、アプリの起動時に招待ID(およびプロモーションコードなどの他のディープリンク情報の可能性)を確認できます。