0

最近、私は新しいAndroidアプリをリリースしますが、iOS版は数ヶ月でApp Storeで利用可能になります。このアプリの中には、友人を招待してFirebase Invites経由でアプリをダウンロードするオプションがあります。Firebase Dynamic Linkはウェブサイトにユーザーを送信しません

だから私は、次のように動作するはずFirebaseコンソールを使用して動的リンクを作成:

if (IOS) { 
    // Go to app website 
} else if (ANDROID) { 
    if (APP_INSTALLED) { 
     // Open app 
    } else { 
     // Open Google Play 
    } 
} else if (DESKTOP) { 
    // Go to app website 
} 

リンク自体は、この(プライベート情報が削除)のようになります。

 https://[custom_domain].app.goo.gl/? 
    link=https://app_website.com& 
    apn=com.my.app&st=meta+data_header& 
    sd=meta+data+description& 
    si=https://app_website.com/meta_data_image.png& 
    utm_source=INVITE& 
    efr=1 

Firebase招待です

Uri deepLink = Uri.parse(getString(R.string.invitation_deep_link)); 
String invitationMessage = getString(R.string.invitation_message); 
String emailTitle = String.format(getString(R.string.invitation_email_title), getUserName()); 

Intent intent = new AppInviteInvitation.IntentBuilder(getString(R.string.invitation_title)) 
    .setMessage (invitationMessage) 
    .setDeepLink(deepLink) 
    .setEmailSubject(emailTitle) 
    .setEmailHtmlContent(mRawEmailHtml) 
    .setOtherPlatformsTargetApplication(
        AppInviteInvitation.IntentBuilder.PlatformMode.PROJECT_PLATFORM_IOS, 
          getString(R.string.ios_app_client_id)) 
    .build(); 

startActivityForResult(intent, InviteActivity.REQUEST_INVITE); 

Androidでは、正常に動作しますが、iOSでは、いくつかのTRANGEのものがここに...起こっているユースケースは、次のとおりです。

SMSアプリが既にインストールされているAndroidデバイス上で受信したリンクをクリック

  1. - >アプリが開きます
  2. [素晴らしいを!]
  3. Android搭載端末で受信したリンクをクリックしてアプリがインストールされていない - > Google Playが開きます[すばらしい]
  4. iPhoneで受信したリンクをクリックすると、アプリがインストールされていません - >ブラウザが開きます上にJavaScriptのポップアップが表示され、質問:

「App Store」でこのページを開きますか?

[OK]をクリックすると、「アイテムが利用できません」ページが開き、[キャンセル]をクリックするとユーザーは空白のブラウザページに残ります。 [それほど素晴らしい全然!]アプリが既にインストールされているAndroidデバイス上で受信したリンクをクリック

メール

  1. - [!偉大]を>アプリが開きます
  2. クリック既にインストールされていないAndroid搭載端末のリンクを受信しました - > Google Playが[great!]を開きます
  3. iPhoneで受信したリンクをクリックすると、アプリがインストールされていません - >ブラウザがiOSネイティブで開きます上にポップアップと言う:

このページは別のアプリケーションで開きます。

[OK]をクリックすると、「アイテムが見つかりません」ページが開き、[キャンセル]をクリックするとユーザーは空のブラウザページに残ります。 [それほど素晴らしいわけではありません]

Googleにはバグがあります。間違っていて、バグのある人が私です。

答えて

0

カップルのコメント:

1)ポップアップのApp Store "で、このページを開き、 ""?" iOSではやむを得ないことです。これはiOSの機能であり、このダイアログは削除できません。このダイアログの機能は変更できません。 「このページは別のアプリケーションで開きます」とは分かりません。これは電子メール固有のダイアログです。ベースラインとして、Notes iOS Appであなたのリンクをタップしてみてください。

2)iOS Bundle IDとAppStore IDを指定しなかった場合、Firebase Dynamic LinksにはiOS Appに関する情報はありません。この場合、リンクはiOSで開いたときにディープリンク(https://app_website.com)に移動する必要があります。私はあなたのコードでios_app_client_idを割り当てているのを見ています。あなたのiOSアプリケーションがまだ利用できない場合は、どうしてですか?

3)長いか短いリンクを検証するには、&d=1をリンクに追加してください。このようなリンクは、リンクナビゲーションフローの詳細が公開されるデバッグページにナビゲートします。

問題が解決しない場合は、Firebaseのバグを自由に開けてください。

+0

ありがとうOleksiy。いくつかのテストを実行した後、私はダイナミックリンクを変更し、それが間違って機能するようになったため、奇妙な動作(ダイアログや間違ったリダイレクト)の原因がFirebase Invitesであったことを理解するようになりました..悲しいことに、Firebase Invitesを私の私のカスタム招待UIとその背後にあるロジックを実装する – Barakuda

関連する問題