Firebase动态链接不会将用户发送到网站

时间:2017-08-21 15:03:14

标签: android iphone firebase firebase-dynamic-links firebase-invites

这些天我推出了一款新的Android应用程序,但它的iOS版本将在几个月内在App Store中推出。在应用程序中,可以选择邀请朋友通过Firebase邀请下载应用程序。

所以我使用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上,一些奇怪的东西正在发生..这里是用例:

SMS

  1. 点击已安装该应用的Android设备上收到的链接 - >该应用程序打开[great!]
  2. 点击尚未安装该应用的Android设备上收到的链接 - > Google Play会打开[很棒!]
  3. 点击尚未安装该应用的iPhone上收到的链接 - >浏览器打开时会弹出一个JavaScript弹出窗口并询问:
  4.   

    在“App Store”中打开此页面?

    单击“确定”将在“项目不可用”页面上打开App Store,单击“取消”将使用户处于空白浏览器页面。  [一点也不好!]

    电子邮件

    1. 点击已安装该应用的Android设备上收到的链接 - >该应用程序打开[great!]
    2. 点击尚未安装该应用的Android设备上收到的链接 - > Google Play会打开[很棒!]
    3. 点击尚未安装该应用的iPhone上收到的链接 - >浏览器打开,顶部有一个iOS原生弹出窗口,并说:
    4.   

      此页面将在另一个应用程序中打开。

      单击“确定”将在“未找到项目”页面上打开iTunes Store,单击“取消”将使用户处于空白浏览器页面。  [一点也不好!]

      对我来说,看起来谷歌有一个错误 - 我希望我错了,那个有错误的人就是我..有谁可以对这个问题有所了解?

1 个答案:

答案 0 :(得分:0)

夫妻评论:

1)弹出“在”App Store“中打开此页面?”在iOS上是不可避免的。这是iOS功能,无法删除此对话框。此对话框的功能也不能改变。我不确定“此页面将在另一个应用程序中打开”。这可能是电子邮件特定对话框。作为基准,请尝试点击Notes iOS App中的链接。

2)如果您未指定iOS Bundle ID和AppStore ID,则Firebase动态链接不会提供有关您的iOS App的信息。在这种情况下,链接应在iOS上打开时导航到深层链接(https://app_website.com)。我在你的代码中看到你分配了ios_app_client_id。如果您的iOS应用程序尚不可用,为什么要这样做呢?

3)要验证长链接或短链接,请将&d=1附加到链接。此类链接将导航到调试页面,其中将显示链接导航流的详细信息。

如果问题仍然存在,请随意打开Firebase错误。