这些天我推出了一款新的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
在“App Store”中打开此页面?
单击“确定”将在“项目不可用”页面上打开App Store,单击“取消”将使用户处于空白浏览器页面。 [一点也不好!]
电子邮件
此页面将在另一个应用程序中打开。
单击“确定”将在“未找到项目”页面上打开iTunes Store,单击“取消”将使用户处于空白浏览器页面。 [一点也不好!]
对我来说,看起来谷歌有一个错误 - 我希望我错了,那个有错误的人就是我..有谁可以对这个问题有所了解?
答案 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错误。