gpt4 book ai didi

ios - 在路径中使用/#/创建 URL 并在 safari 中打开

转载 作者:行者123 更新时间:2023-11-28 07:40:39 25 4
gpt4 key购买 nike

我使用 firebase 动态链接,其中包含指向我们的网络应用程序的 URL。如果打开动态链接,则获取深层链接。到目前为止,一切都很好。当我们在我们的 web 应用程序中使用/#/path 模式将用户重定向到不同的部分时,我们现在遇到了一个问题,在我们必须在 url 中附加一个新参数之后在我们的 iOS 应用程序中创建这样一个 url

如果这个示例 URL 在我们的动态链接中

https://domain/#/main/page?utm_source=app&utm_medium=button&utm_campaign=testcampaign

我明白了,必须在我们的网络应用程序中为自动登录机制附加一个参数。

所以这就是我在两种不同方法上失败的地方。

  1. 从 url 获取字符串并附加 token 参数和值。在我必须将 urlString 解析回 URL 对象之前,这种方法工作正常。在创建新的 URL 对象时,/#/内部会导致错误。我尝试将/#/替换为/%23/(编码为 #),但这在我们的 ngnix/webapp 基础架构上不起作用。

  2. 在 URLComponents 中使用新的 URLQueryItem 附加 token 参数。这种做法导致错误的URL导致(token是添加的参数)

    https://my-stage.bikersos.com/?token=tokrenvalue#/main/premium?utm_source=app&utm_medium=button&utm_campaign=testcampaign

我将此扩展名附加到 URL 查询项

extension URL {
func addQueryParams(newParams: [URLQueryItem]) -> URL? {
let urlComponents = NSURLComponents.init(url: self, resolvingAgainstBaseURL: false)
guard urlComponents != nil else { return nil; }
if (urlComponents?.queryItems == nil) {
urlComponents!.queryItems = []
}
urlComponents!.queryItems!.append(contentsOf: newParams)
print(urlComponents!)
return urlComponents?.url
}
}

有人知道我该如何解决这个问题吗?我个人更喜欢第二种方法,如果可以在最后附加参数的话

最佳答案

我弄清楚了如何使用 firebase 和 utm 参数来完成(此链接可以作为深层链接添加到 firebase 的动态链接中)

https://example.domain.com/?utm_source=newsletter&utm_medium=button&utm_campaign=testcampaign#/path1/subpath?webappparam1=1&webappparam2=asdf

这样所有 utm 参数都会被应用,路径也将在 Web 应用程序中可用。

您可以使用 iOS SDK 添加新的查询参数,但请注意,它们是在 utm 参数位置添加的。

如果您需要在末尾添加它们,请检查是否已经存在一个 ?在路径中并在 url 的末尾写入您自己的附加内容。

关于ios - 在路径中使用/#/创建 URL 并在 safari 中打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52365928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com