如何解决Swift 从 Share Extension 或 WebView 获取 URL 返回无效值
在我的应用程序中,用户可以访问一个 WebView
,它像这样抓取 URL
:
func webView(_ webView: WKWebView,didFinish navigation: WKNavigation!) {
self.url = webView.url
}
用户还可以通过 ShareExtension
访问应用程序,我可以像这样抓取 URL
:
if let item = extensionContext?.inputItems.first as? NSExtensionItem,let itemProvider = item.attachments?.first,itemProvider.hasItemConformingToTypeIdentifier("public.url") {
itemProvider.loadItem(forTypeIdentifier: "public.url",options: nil) { (url,error) in
if (url as? URL) != nil {
// do something with URL
这对我来说很好用,并且总是检索正确的 URL
。
问题:
我发现对于我的应用程序中的某些人来说,URL
保存在 WITH 中。PageTitle
。这是一个问题,因为当尝试打开它们时(我将它们保存在带有 textView
函数的 hyperLink
中)这会运行出错,因为 String
无法格式化为URL
。以下是无效 URLs
的一些示例:
请以你的名字呼唤我 https://www.amazon.de/dp/B07B58SGWP/ref=cm_sw_r_cp_api_fabc_iCJ6Fb0QVVW8Y?_encoding=UTF8&psc=1
https://farfetch.onelink.me/yQyB/b9f5e5d2?af_dp=https%3A%2F%2Fwww.farfetch.com%2Fshopping%2Fitem-16119737.aspx&af_web_dp=https%3A%2F%2Fwww.farfetch.com%2Fitem-16119737.aspx Shoppen Golden Goose“Hi Star”运动鞋
Schau dir LANDSKRONA von IKEA an。 Hier noch weitere informationen: https://ingka.page.link/gqV9dAw61TqNJrne9
https://www.apple.com/de/shop/buy-ipad/ipad-air/64gb-grün-wifi
知道为什么前 3 个示例这样保存吗?有解决方案吗???
最后两个例子让我很困惑。我无法打开它们,因为 Swift 告诉我这些是无效的 URLs
。 但是为什么?没有像其他示例中那样的空格。也没有任何中文字母或阿拉伯文字,这会使它们无效。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。