使用 swift 与网站进行通用链接
Posted
技术标签:
【中文标题】使用 swift 与网站进行通用链接【英文标题】:Universal linking with website by using swift 【发布时间】:2019-10-24 09:06:25 【问题描述】:我在我的应用程序中使用 Universal-linking,为此,我制作了以下 apple-app-site-association 文件,就像下面的代码一样。
我将此文件放入服务器,请在此处找到:- http://dev.2ULaundry.com/apple-app-site-association
我还将域 URL 添加到关联域下的项目文件的功能中。
但是我的通用链接不起作用,请帮助我。
"applinks":
"apps": [],
"details": [
"appID": "D929J2.com.apple.wwdc",
"paths": [ "/scheduled-pickups/","/new-schedule/", "dashboard-1", "/refer-a-friend/", "/price-list/", "/give-a-gift/", "/locations", "2u-rewards/", "payments/"]
]
并将以下代码添加到 appdelegate 文件中也用于 hadling。
func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([Any]?) -> Void) -> Bool
if userActivity.activityType == NSUserActivityTypeBrowsingWeb
let url = userActivity.webpageURL!
let userurl = url.absoluteString
if userurl.contains("/scheduled-pickups/")
let innerPage = UIStoryboard.loadPickupController()
innerPage.selectedfrom = SelectedFromVc.Deeplinking.rawValue
let nav = UINavigationController.init(rootViewController: innerPage)
nav.isNavigationBarHidden = true
self.window?.rootViewController = nav
【问题讨论】:
您必须使用此 AASA 验证器 branch.io/resources/aasa-validator 验证您的网站域 您好,会显示错误,其实这些文件是我的后端人员放入服务器的,我们如何解决这个问题。 你必须得到json文件或者让他们知道aasa验证器,请看我下面的详细cmets 【参考方案1】:您应该检查您的域是否可以使用通用链接。你可以在这里做:https://branch.io/resources/aasa-validator/。
我已经检查了您的域http://dev.2ulaundry.com 并且您的域存在一些问题。修复它们,应该没问题。
【讨论】:
我不知道您的服务器是如何配置的,但您可以尝试将apple-app-site-association
文件放入您身边根文件夹的 .well-known/ 文件夹中。
在我这边意味着我的本地 Xcode 项目中没有文件,该文件仅在服务器中。
当然,这个文件应该在服务器端可用。
关于如何将该文件放入服务器的任何想法。
什么意思?如果您已经将此文件放在服务器上,那么您应该能够创建一个文件夹 .well-known/
并将此文件放在该站点的该文件夹中。【参考方案2】:
在实施之前,您必须使用此 AASA 验证器 https://branch.io/resources/aasa-validator/ 验证您的网站域。它几乎没有警告,所以请运行验证器并解决问题。
根据您的分享,域以“http”开头,但
通用链接仅服务于“https”
如果您将 AASA 文件放在下面的路径中也会很好
https://dev.2ulaundry.com/.well-known/apple-app-site-association
由于我在通用链接和应用链接上花费了很多时间,所以我的 建议免费使用Firebase dynamic link 或 Branch.io 在浪费你的时间之前。通用链接会产生很多问题 就像您无法检查应用程序的可用性(应用程序是否已安装)和 您不能通过 Apple/Play 商店传递参数。
【讨论】:
你重复了我的答案:) 酷哥们,我的意思是强调通用链接的问题。即使他选择通用链接,这些都是基本的验证。 :-) 你好 RaviChandra 谢谢你 AASA 文件位置路径 wellknown 是我们自己的文件夹或必须并且应该是名称 .well-known 您必须在根目录中创建文件夹(名称为 .well-known)并按预期设置路径。例如:在 nginx 服务器中,我们在 default.config 文件中设置路径,如下所示“location /.well-known/apple-app-site-association try_files $uri /.well-known/apple-app-site-association ; "以上是关于使用 swift 与网站进行通用链接的主要内容,如果未能解决你的问题,请参考以下文章
IOS- 与 Firebase 的通用链接和使用 location.href 的错误?