clash安卓局域网代理使用教程
从 URL 打开应用程序是一项非常强大的 iOS 功能。它将用户吸引到您的应用程序,并可以创建特定功能的快捷方式。本周,我们将深入探讨 iOS 上的深度链接以及如何为您的应用创建 URL 方案。
当我们谈论移动应用程序的深度链接时,它意味着创建一个特定的 URL 来打开移动应用程序。它分为两种格式:
无论您使用的是 SwiftUI 还是 UIKit,为 iOS 设置自定义 URL 方案都是相同的。在 Xcode 中,在您的项目配置下,选择您的目标并导航到 Info 选项卡。您会 URL Types 在底部看到一个部分。
单击 + ,我可以创建一个新类型。对于标识符,我经常重复使用 app bundle。对于 URL 方案,我建议使用应用程序名称(或缩短)尽可能短。它不应包含任何自定义字符。例如,我将使用 deeplink .
在纸面上,UIKit 或 SwiftUI 不应该对我们处理深度链接的方式产生影响。然而,它主要归结为对于 UIKit 应用程序更常见的一个 AppDelegate 或一个。 SceneDelegate
对于包含 的较新应用程序, SceneDelegate 回调将在那里。重要的是要注意 AppDelegate ,即使您实现它,也不会调用它。
在这个实现中,我们可以注意到我们不再需要返回任何结果。但是,现在传递的参数是 a Set 而不仅仅是 a URL ,它是打开一个或多个 URL。我没有一个用例,我们会拥有更多的 URL,所以我暂时只保留一个。
与之前一样,我们可以在模拟器上安装应用程序并尝试查看是否所有设置正确。我们应该看到打印我们的深层链接 URL。
这个想法很简单,对于给定的链接,我们需要确定我们应该打开什么用户旅程或屏幕。因为它们可以是整个应用程序的许多功能,并且因为我们希望避免大量 switch case 处理它,所以我们将变得更聪明并且 分而治之。
对于这个例子,让我们想象一下我们有一个视频编辑应用程序。它们是 3 个主要选项卡,用于编辑新视频、列出已编辑的视频,然后是包含不同应用程序和用户信息的帐户页面。
我还将定义一个 DeeplinkCoordinator 将保留在处理程序上并找到正确使用的处理程序。它还像 AppDelegate has 一样返回一个布尔值,因此我们可以在不同的实现中使用。
为了简单起见,我只测试匹配的 url 并导航到正确的屏幕。我还设置了背景颜色,看看我的着陆点是什么。在您的情况下,我们可以只设置正确的 UIViewController 而不是空的。
现在我们可以将它们注入到 DeeplinkCoordinator 并让它处理正确的路由。我们将有两个变体,第一个用于 AppDelegate .
总而言之,一旦设置了 URL 方案,我们就定义了一个漏斗来捕获用于打开应用程序的所有深层链接,并利用面向协议的编程来创建处理程序的多个实现,每个特定路径一个。
话虽如此,为了更安全的行为,可能会有一些改进,比如验证完整路径而不是相对路径。仅导航 present ,但它专注于处理程序而不是转换本身。
在安全说明中,如果您还在深度链接中传递参数,请确保验证预期的类型和值。如果我们不小心,它可能会暴露不同的注入漏洞。
从那里,您应该很好地了解如何使用和处理深度链接来打开您的应用程序并跳转到特定屏幕。此代码可在Github[2] 上找到。
最近有一些小伙伴clash安卓局域网代理使用教程,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!所有资料都整理到网盘了,欢迎下载!