什么是Deeplink? 在移动应用程序的上下文中, 深层链接是由统一资源标识符(URI)组成的URL,该URL链接到移动应用程序中的特定位置,而不仅仅是启动应用程序。 为什么要深层链接? 通过网站推广移动应用 最佳用户体验 通过广告横幅展示营销 通过吸引用户使用定制的电子邮件来进行电子邮件营销 延迟深层链接!! 延迟深度链接是移动深度链接的各个方面之一,它描述了深度链接到尚未安装的应用程序的原理。 在这种情况下,深度链接将被“推迟”,直到用户安装该应用程序为止。 单击延迟的深层链接后,它将导航到App Store / Play商店,并且在安装应用程序后,它将导航到应用程序内的特定位置。 如果已经安装了应用程序,它将直接启动该应用程序,并打开该应用程序内的特定位置。 通用链接! 从iOS 9开始,Apple引入了通用链接。 单击通用链接时,iOS会检查是否已安装支持链接的应用程序并打开相应的应用程序,否则将在Web浏览器中打开URL(链接)。 (对于运行9.0之前的iOS版本的用户,点击通用链接可在默认Web浏览器中打开该链接) 使用Branch SDK在iOS中集成延迟的深度链接 步骤1:安装Branch SDK 使用 CocoaPods 平台:ios,“ 10.0” 目标“ APP_NAME” use_frameworks! 吊舱“分支” 结束 然后运行“ pod install” 使用 迦太基 github“ BranchMetrics / ios-branch-deep-linking” 使用 源代码 手动安装Branch 将Branch.framework到Embedded Binaries ( Copy items if needed选择Copy items if […]
( 这篇文章最初发表在 分公司 博客 在这里 ) 想象一下:您想在iOS上开始使用Universal Links,Apple的文档已要求您创建和托管AASA文件。 那么,什么是AASA文件? AASA( apple-app-site-association的缩写)是一个文件,位于您的网站上,并将您的网站域与您的本机应用程序相关联。 换句话说,这是向iOS证明域所有权的一种安全方法。 使用URI方案,这是在iOS 9之前在iOS上打开应用程序的标准方式,应用程序开发人员可以注册自己喜欢的任何URI方案,而iOS无需任何验证即可通过打开应用程序来响应那些URI方案。 例如,如果独立开发人员为测试应用程序注册了fb:// URI方案,那么即使Facebook本地应用程序使用了fb://,也没有阻止它的方法。 AASA文件使Universal Links独特且安全,因为独立开发人员无法在facebook.com域上托管AASA文件。 让我们看一下apple-app-site-association文件的一些基础知识,这些文件将帮助您在域上构建和托管一个文件。 AASA文件包含一个JSON对象,其中包含应作为通用链接包含或排除的应用程序列表和域上的URL路径。 这是一个示例AASA文件: { “应用链接” :{ “应用” :[], “细节” :[ { “ appID”:“ 3XXXXX9M83.io.branch-labs.Branchster”, “路径”:[“不是/ e / *”,“ *”,“ /”,“ / archives / 201?/ *] } ] } } 在AASA JSON中,每个特定于应用程序的域都包含一个appID和path的字典。 让我们看一下AASA JSON对象中的每个键是什么: applinks :由于AASA文件还可以用于其他目的(例如,共享的Web凭据),因此applinks对象定义通用链接使用的文件部分。 apps :apps数组必须存在,但始终为空。 […]
首先,我们将简要讨论深度链接概念。 深度链接的概念是从另一个应用程序打开移动应用程序的特定内容,或者单击Web链接打开移动应用程序。 让我们举个例子。 首先将您的Instagram帖子分享到Twitter。 现在转到Twitter应用程序或在移动浏览器中打开twitter.com。 现在在推文中查看您的Instagram帖子。 现在单击该帖子,这会将您重定向到自己在Instagram应用上的帖子(如果已安装),否则它将在浏览器中打开该帖子。 因此,使用深层链接可以将用户重定向到您的应用程序,而不是在网络上显示内容,这更加用户友好和方便。 消息传递到其他应用程序也是可能的。 这可以使用自定义网址架构来实现。 现在您想到了,如果我们可以通过深层链接实现Firebase动态链接,那么为什么需要Firebase动态链接。 但是深度链接的局限性在于,这对于尚未安装应用程序的用户将不起作用。 例如,您想向应用程序用户显示个性化的欢迎消息,或者想显示促销优惠,或者想通过单击深层链接将其重定向到应用程序中的特定屏幕。 现在,如果用户尚未安装您的应用程序该怎么办? 在这种情况下,Firebase动态链接可以为您提供正确的解决方案。 这些深层链接可以满足您的所有需求。 通过创建一个动态链接,您可以将用户重定向到适当的平台。 单击此链接,移动应用程序用户将被重定向到其本机应用程序,而网络用户将被重定向到您的网站以获取特定内容。 您还可以自定义此行为。 如果用户尚未安装您的应用程序,则可以将其带到应用程序商店/游戏商店以下载应用程序,或带他在移动浏览器上显示内容。 当用户单击动态链接并安装应用程序时,信息在用户第一次打开应用程序时仍然可用。 Firebase动态链接需要iOS 8或更高版本。 如何创建Firebase动态链接? 您可以通过三种方式创建Firebase动态链接。 使用Firebase控制台 使用REST API 通过将动态链接参数添加到特定于您的应用程序的域来形成URL。 使用Firebase控制台创建动态链接 这对于在社交媒体上创建一个链接共享很有用。 单击Firebase控制台项目中的“动态链接”部分。 记下您的Firebase动态链接域,然后单击“新建动态链接”。 3)填写所需的信息,最后单击“创建动态链接”。 在iOS上接收动态链接 要接收您之前创建的Firebase动态链接,您必须在应用程序中包含Dynamic Links SDK,并在应用程序加载时调用handleUniversalLink:和dynamicLinkFromCustomSchemeURL:方法以获取在动态链接中传递的数据。 设置Firebase动态链接SDK 首先,将Firebase设置为您的iOS项目。 如果您不熟悉Firebase,可以在此处检查设置Firebase。 在pod文件中添加pod’Firebase / DynamicLinks’ 。 运行pod install并打开工作区文件。 检查是否在应用程序设置中指定了应用程序的App Store ID和Apple Developer Team ID。 要查看和编辑应用程序的设置,请转到Firebase项目的“设置”页面,然后选择您的iOS应用程序。 您可以通过打开以下URL来确认Firebase项目已正确配置为使用iOS应用程序中的动态链接:https://app_code.app.goo.gl/apple-app-site-association […]
注意:此屏幕快照中定义的域将无法使用,因为它不会返回 与您的团队ID相匹配的 正确的 apple-app-site-association 文件。 您必须配置自己的域,并确保 apple-app-site-association 文件在网络上可用。 用例 应用程序具有一个可以接收UIColor视图控制器ColorViewController ,并且具有颜色选择器,该颜色选择器触发导航到相同的视图控制器类型,并将所选颜色作为数据传递给新实例。 应用程序可以打开一个深链接URL,该URL的路径中包含十六进制字符串。 应用程序应将十六进制字符串映射到UIColor并将其传递给ColorViewController 。 应用程序应使用以下URL格式打开ColorViewController ,并在背景中显示适当的颜色: https:// DOMAIN / color / COLOR_HEX_STRING http:// DOMAIN / colour / COLOR_HEX_STRING https:// DOMAIN / color / COLOR_HEX_STRING http:// DOMAIN / colour / COLOR_HEX_STRING 目的地 它不过是一个简单的视图控制器包装器,它提供了一些附加功能并简化了截断数据(从URL提取的数据)的填充。 Destination的resolve方法是将URL中的参数映射到目的地视图控制器可以接收的数据的地方。 此类目的地需要与URL模式字符串一起注册。 这些用于CoreNavigation的路由匹配机制。 应用委托 注意AppDelegate类中的registerRoutes()方法。 它说任何与传递的数组中的任何字符串匹配的URL都应解析为Color目标类型。 以:冒号)字符开头的所有参数占位符将替换为从URL提取的数据,并传递给Color的resolove(context:)方法。 定义参数占位符的格式: :PARAMETER_NAME 要么 :PARAMETER_NAME(REGEX_MATCH_PATTERN) 访问提取的参数: 让parameter […]
我将告诉您有关将Firebase动态链接用于Flutter项目的经验。 对于那些不了解Firebase Dynamic Link的人 ,这里有一个视频。 Firebase Dynamic Link是满足此要求的完美解决方案。 在这篇文章中,我不会详细介绍如何在Android / iOS上配置Firebase Dynamic Link ,其中有许多教程。 我将详细介绍Flutter中的集成,该集成用于接收包含具有不同参数的深层链接的链接,因为在实现该链接时,我发现了一个错误,将向他们展示它们。 手动创建我们的动态链接 您可以按照以下文档进行操作:https://firebase.google.com/docs/dynamic-links/create-manually 在Flutter项目中添加Firebase Dynamic Link程序包 https://pub.dartlang.org/packages/firebase_dynamic_links 您可以阅读“ 处理收到的动态链接”部分 ,因为它详细介绍了说明,以防您未配置它。 将新软件包添加到pubspec.yaml文件中 firebase_dynamic_links:^ 0.0.6 插件页面上显示的示例并未详细说明应在何处放置该代码块,对于我而言,我必须阅读该插件的源代码以了解其功能。 这是示例代码: 假设MyHomeWidget是我们在应用程序启动时显示的初始窗口小部件,在创建窗口小部件并启动状态时,他们将调用_retrieveDynamicLink方法,该方法使用带有以下行的插件: 最终的PendingDynamicLinkData数据=等待FirebaseDynamicLinks.instance.retrieveDynamicLink(); 最终的Uri deepLink =数据? 。链接; FirebaseDynamicLinks.instance.retrieveDynamicLink()是在从动态链接打开应用程序的情况下负责获取深层链接的调用。 如果我们的窗口小部件已经启动,那么如果您再次打开动态链接,它将永远不会再通过initState()方法,因此我们将永远不会获得深层链接。 使用WidgetsBindingObserver 在小部件恢复或暂停时监听小部件的状态。 所以我们可以做这样的事情 在这里,我们确保每次显示小部件时,都会调用该方法以获得动态链接。 在iOS中,在插件获取Deep Link之前调用AppLifecycleState.resume 。 在调用_retrieveDynamicLink之前,添加一个小的延迟。 到目前为止一切顺利,只是我注意到一个错误仅在iOS上发生。 在iOS中,一旦打开应用程序,并使用FirebaseDynamicLinks.instance.retrieveDynamicLink()获得深层链接,当再次调用它时,我们将继续获取最后的深层链接,即,每次小部件都会执行该调用进入AppLifecycleState.resumed的状态,并且在从动态链接或由用户手动打开应用程序时发生这种情况,在iOS中,我无法得知从何处打开了它,因为在获得深层链接之后,即使该方法出来并手动输入了该应用,该方法也会带回相同的值。 当我查看iOS的插件代码时,我看到当调用retrieveDynamicLink方法时,其作用是将深层链接的值存储在变量中并返回它,问题是在使用该方法后,该变量永远不会cleaned,就像在Android中一样,因此在iOS中出现意外结果。 我已经发送了一个“拉取请求”来解决该问题,但在他们接受之前,您可以按如下所示更改pubspec.yaml文件 firebase_dynamic_links: git: 网址:https://github.com/diegoveloper/plugins.git 参考:ff17b724df0bcdf35bb5689b347d7fbef7107615 路径:packages / […]
免责声明 :要撰写这篇文章,我必须在互联网上阅读很多东西。 另外,我还复制了其他文章中易于理解的示例和句子,以使本文有意义。 🤓 Apple文档链接提供通用链接。 什么是深层链接? 深层链接是任何将用户引导通过网站或应用程序首页到其内部内容的链接。 例如,直接链接到产品而不是首页。 例如,URL fb://可以打开Facebook应用程序,但是fb://profile/33138223345可以在Facebook应用程序中打开Wikipedia的个人资料。 如果您想与朋友分享来自amazon.com的鞋子,则可以发送一个深层链接,将您的朋友直接带到应用程序中的那些鞋子。 如果没有深层链接,您的朋友将不得不在App Store或Play Store上找到Amazon应用程序,将其打开到首页,找到“搜索”功能,然后尝试找到与您所穿的同一双鞋。 自定义URI方案是移动应用程序深层链接的原始形式。 它们就像为您的应用程序创建一个“专用互联网”,其链接类似于myapp:// path / to / content 。 自定义URI方案的优点是易于设置,并且大多数应用程序已经拥有一个。 缺点是,如果已经安装了相应的应用程序,则用户的设备仅知道此“专用互联网”,并且默认情况下没有优雅的后备选项。 与URI方案进行深度链接的变通办法是使用传统的http://链接来启动Web浏览器。 此链接包含JavaScript重定向到自定义URI方案,该重定向由网络浏览器执行以启动应用程序。 如果由于未安装应用而导致重定向尝试失败,则JavaScript会将用户带到App Store或Play商店。 这仍然是在Android上进行深度链接的主要方法,但是Apple于2015年通过发布Universal Links开始在iOS上阻止了这种方法 。 什么是Apple iOS通用链接? 苹果在iOS 9中引入了Universal Links,以解决自定义URI方案深层链接中缺少优美的后备功能的问题。 通用链接是指向网站和应用程序内的一部分内容的标准Web链接(http://mydomain.com)。 打开通用链接后,iOS会检查该域是否已注册任何已安装的应用程序。 如果是这样,该应用程序将立即启动,而无需加载网页。 如果不是,则将Web URL(可以是到App Store的简单重定向)加载到Safari中。 通用链接在iOS中如何工作? 资料来源:Branch.io 在Universal Links之前,在安装应用程序时打开应用程序的主要机制是尝试在Safari中重定向到应用程序的URI方案(像这样在应用程序的PLIST中注册)。 这将路由逻辑放入了Safari,但是无法检查是否已安装该应用程序。 这意味着开发人员将尝试在无法安装应用程序的情况下100%地调用URI方案,然后在不使用计时器的情况下优雅地回退到App Store。 iOS 9通用链接旨在解决此问题。 iOS将检查是否已注册通用链接( 而不是在包含该应用程序包ID的域中存在一个AASA(苹果应用程序站点关联)文件) ,而不是先单击该链接便打开Safari。 应用程式应开启的路径( […]
不能进行自然运动的Alémdeoferecer umaexperiência移动设备,istoé,sem的preprear abrir网站,conconúúdo的深层链接,tambémpodem serótimasferramentas de engajamento para seu aplicativo的深层链接。 Atravésdeles,使用Google的直接复制功能。 Alémdisso,解释性应用程序,trazendo maisinstalaçõespara o app。 通用链接 在iOS 9上,这是Apple的lancom深度链接chamada Universal Links。 URL解决方案的Eles vieram para替代品和解决方案的问题,例如: 链接 :HTTPS Para o seu网站的通用链接。 徽标,应用程序和应用程序定义了os链接; Flexíveis :Universal Links的功能和应用程序的安装,以及所有Safari嵌套的链接; Privacidade :Outras应用程序可用于comunicar或其他应用程序,可用于saber se elaestáinstalada ounão。 兰卡门大公国,维梅拉·坦贝姆·瓦里亚斯·杜维纳斯·索菲尔·芬奇纳门托和实施者。 在通用链接上没有应用程序,在大多数应用程序中都无法使用VivaReal,而在大多数解析器中都存在问题,请使用caminho。 ✌️ 实施通用链接 必不可少的2通用应用程序seu app com通用链接。 Criar o arquivo apple-app-site-association (关联文件)和fazer上载dele no seu网站HTTPS; Tratar o comportamento dos不会造成重复操作。 Criando […]
Di artikel sebelumnya,第一部分,telah dijelaskan pengertian深度链接,URL URL Schemes和Universal Links。 不,Selanjutnya,bagaimana Implementasi kedua hal tersebut吗? Di bagian kedua ini,ayo,kita bahas bagaimana Implementasi URL Schemes terlebih dahulu! 实施URL方案 Buka Xcode,编辑项目设置->信息 。 Pilih URL类型,kemudian tambahkan URL方案baru dengan klik tombol tanda tambah。 Isak masukan的Terakhir URL方案dennam nama方案baru yang sesuai nama produk dan sesuaikan dengan URL yang disediakan untuk深度链接(contoh:深度链接)。 Pada dasarnya,可实现URL方案dapat ditangani […]
Apa Itu深度链接? Deep Link adalah sebuah tautan yang dapat mengarahkan pengguna melewati beranda situs web atau aplikasi ke konten di dalamnya。 Contoh:Melalui URL LinkedIn://linkedin.app/jobs,LinkedIn dengan membuka langsung halaman职位。 Ada dua metode解决方案Deep Link iOS,yaitu URL方案 担 通用链接。 Meskipun URL计划lebih umum digunakan,Universal Links,Apple untuk menghubungkan Web ke aplikasi。 URL方案 URL Schemes链接到“ Deep Link dalam aplikasi mobile” 。 […]
URL方案 在iOS 9打开您的应用之前,我们通常使用URL Scheme 。 此方法可以使用诸如wemo类的自定义方案。 使用时,必须在您的应用程序中注册方案。 Example url — wemo://home 已安装的应用程序:“显示对话框”(仅第一次) 未安装的应用程序:不执行任何操作 如果您的应用尚未安装,并且想显示应用商店,则必须在打开应用前检查URL是否正确。 在iOS App中可以使用canOpenUrl进行检查。 通用链接(仅支持iOS 9或更高版本) Unitversal链接与普通链接相同,例如: https : //www.google.com/ Example url — https://wemo.home 已安装的应用程序:无需对话框即可直接打开您的应用程序 未安装的应用程序:使用网址打开野生动物园 包装使用 Firebase动态链接| 火力基地 Firebase动态链接是可以在多个平台上以您想要的方式工作的链接,无论您的应用程序是否… firebase.google.com 应用链接–文档–开发人员Facebook 将应用程序链接添加到您的应用程序Facebook使您可以轻松查看人们如何在您的应用程序中使用应用程序链接。 通过分析趋势… developers.facebook.com