У меня есть ссылка для обмена, которая содержит французский символ с использованием глубокой ссылки.Я кодирую строку URL с .urlPathAllowed
, я также проверял с .urlHostAllowed
.Но все время создается ссылка, но при создании короткой ссылки я получаю сообщение об ошибке
"Операция не может быть завершена. Длинная ссылка не может быть обработана: https://long.encoded/url [https://firebase.google.com/docs/dynamic-links/rest#create_a_short_link_from_parameters]"
Вот мой код для использования динамической ссылки с коротким URL.
var sharingURL = "https://www.example.com/fr/something/traversée-des-alpes-de-chamonix-à-briançon-512/"
sharingURL = sharingURL.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? sharingURL
guard let link = URL(string: sharingURL) else { return }
let dynamicLinksDomain = kSharingDomain
let linkBuilder = DynamicLinkComponents(link: link, domain: dynamicLinksDomain)
linkBuilder.navigationInfoParameters?.isForcedRedirectEnabled = true
linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "com.bundle.identifier")
linkBuilder.iOSParameters?.appStoreID = kAppStoreID
linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "com.android.package")
linkBuilder.analyticsParameters = DynamicLinkGoogleAnalyticsParameters(source: "source", medium: "medium", campaign: "campaign")
linkBuilder.socialMetaTagParameters = DynamicLinkSocialMetaTagParameters()
linkBuilder.socialMetaTagParameters?.title = "Some title"
linkBuilder.socialMetaTagParameters?.descriptionText = "Some long desription"
linkBuilder.socialMetaTagParameters?.imageURL = URL(string:arrSportImages[0]["image"] as! String)!
guard let longDynamicLink = linkBuilder.url else { return }
DynamicLinkComponents.shortenURL(longDynamicLink, options: nil) { url, warnings, error in
// Share link
if let url = url {
let objectsToShare = [url] as [Any]
let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)
activityVC.popoverPresentationController?.barButtonItem = sender
self.present(activityVC, animated: true, completion: nil)
}
else {
print(error?.localizedDescription)
}
}
Пожалуйста, помогите мне решить эту проблему.