如何在Xamarin表单中设置Google Firebase动态链接-Android版

如何在Xamarin表单中设置Google Firebase动态链接-Android版,firebase,xamarin.forms,firebase-dynamic-links,Firebase,Xamarin.forms,Firebase Dynamic Links,如何在xamarin forms应用程序中设置google firebase动态链接、深度链接?这是我在xamarin forms应用程序的Android项目中设置firebase动态链接的方式,因此大部分内容将直接应用于Android。我将在将来完成并记录iOS的实现。 免责声明:我不是专家,这一切都可能是错误的。这正是对我和我的基本理解起作用的。如果有任何错误,请告诉我,让我们提高Xamarin社区的集体智慧 如果您还不知道动态链接是什么,请观看2分钟的视频,这是一个很好的概述 设置 设置分

如何在xamarin forms应用程序中设置google firebase动态链接、深度链接?

这是我在xamarin forms应用程序的Android项目中设置firebase动态链接的方式,因此大部分内容将直接应用于Android。我将在将来完成并记录iOS的实现。 免责声明:我不是专家,这一切都可能是错误的。这正是对我和我的基本理解起作用的。如果有任何错误,请告诉我,让我们提高Xamarin社区的集体智慧

如果您还不知道动态链接是什么,请观看2分钟的视频,这是一个很好的概述

设置 设置分为两部分。 第1部分-在Firebase控制台中配置动态链接(简单) 第2部分-将应用程序配置为能够接收和处理深层链接(不那么容易)

第1部分-配置Firebase控制台中的动态链接(简单) 1-在
2-创建一个项目。 3-创建一个新的动态链接,该选项卡位于“增长”部分的底部。 它将根据您的项目名称为您生成一个静态域名。例如 短链接url是用户将单击以导航到您的应用商店或启动您的应用程序的url。 深度链接url是实际发送到应用程序中供您使用的内容。前“ iOS行为。当前将我的设置为在url浏览器中打开链接,因为我的应用程序尚未连接到该链接

Android行为非常重要,但不像我解释的那么难。 这里是您向firebase注册应用程序的地方。软件包名称应该很简单,使用与您的
应用程序Android属性。例如'com.mycompany.appname' 添加签名证书SHA-1和SHA-256是动态链接所必需的,这就是我们在这里所做的。
微软在这方面有很好的指南,比我能解释的更好。 下载google-services.json文件-稍后您将需要它。此外,您还需要包含SHA证书详细信息的证书。 忽略添加firebase SDK的说明,我们将在稍后使用Nuget软件包将其添加到我们的项目中。 当所有这些都完成后,你的应用程序应该可以在android行为的下拉列表中选择。 最后,如果您愿意,可以向动态链接url添加任何额外的标记,这是可选的

就这样!现在你应该有一个工作的短链接。当在android设备上使用时,它应该已经能够确定应用程序是否已经安装,然后将用户引导到play store或打开应用程序。但是,它不会对您设置的深度链接url做任何事情。这就引出了下一部分

第2部分-将应用程序配置为能够接收和处理深层链接(不那么容易) 1-版本,可能很重要。 2-Nuget软件包-希望这对你来说比对我来说更顺利。 3-守则 3a-目的过滤器 3b-处理深度链接

1-版本。 我在尝试与工作建立动态/深度链接时遇到了很多问题。所以我回去把所有东西都更新到当时最新的版本。 Visual Studio专业版2017-15.7.5 .NET Framework 4.7.03056 沙马林4.10.10.2 Android SDK 8.3.3.2 Android SDK管理器-获得最新版本。Android 8.1 API 27和Android 8.0 API 26(可能需要针对8.1) 安卓属性- -应用程序-使用Android版本编译(目标框架):Android 8.1 Oreo -Android清单:目标Android版本:使用编译SDK版本(尚未尝试直接以8.1为目标,可能有效)。我的最小目标仍然是Android 4.4 API 19 Kit Kat

2-Nuget软件包。这些都是针对Android项目的。MyApp.Android 您不必向.NET标准项目中添加任何内容,只需确保Xamarin.Forms版本匹配即可 下面是我所做的 更新: Xamarin.Forms-更新至3.0.0.482510 安装: 这就是我立刻感到恼火的地方。这里的问题是什么导致我回去更新我的Android API级别到最新的8.1 Xamarin.Firebase.Dynamic.Links by Xamarin Inc v60.1142.1是您要安装的。 其他依赖项应自动安装。就我而言,他们没有。 依赖关系,版本=v8.0在这里很重要。这应该是您的应用程序设置为编译时所依据的SDK API版本。 但是,其他依赖项,如Xamarin.GooglePlayServices.base(=60.1142.1)都有自己的嵌套依赖项,需要MonoAndroid版本=v8.1 因此,如果您在安装Dynamic Links软件包时遇到问题,我建议您首先查看。 出于我的目的,嵌套的依赖项不会自动安装,所以我仔细检查了每个依赖项及其列表,并全部手动安装。即使是那些说不要手动操作的人。它只有20个左右,但我的猜测是,如果我在所有这些之前将我的项目SDK设置为8.1,那么它会顺利进行

代码 意图过滤器 这些在您的AndroidManifest.xml文件中定义 他们是干什么的?当你的应用程序启动时,他们会听指令。 当应用程序开始匹配预定义的筛选器(短链接)时,它们会将您的预期操作或数据存储在Intent类中。这就是我们的深层次联系。 对于我们来说,这就是让android应用程序接收并开始处理您在第1部分中设置的深度链接url。 firebase dynamic link文档提供了一个很好的细分和示例,说明了如何操作。 android开发者文档有一个很好的例子,也提供了这方面的分解。 注意重点关注活动标记之间的内容。我刚刚加入了其他标签来显示一般结构,以防您以前没有编辑过这些标签。 那个