微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift 从 Share Extension 或 WebView 获取 URL 返回无效值

如何解决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.amazon.de/DALLE-PIANE-CASHMERE-Anthrazit-Einheitsgröße/dp/B06XY2ZGBZ/ref=mp_s_a_1_13_sspa?dchild=1&keywords=dalle%2Bpiane%2Bcashmere%2Bschal&qid=1610091194&sprefix=dalle%2Bpia&sr=8-13-spons&psc=1&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUExT0hHOFRLWElYVUJBJmVuY3J5cHRlZElkPUEwOTY1ODUyOUJWWUU4MlY0SVUwJmVuY3J5cHRlZEFkSWQ9QTA0ODk2NzEzSDZNSUJOR1haREVTJndpZGdldE5hbWU9c3BfcGhvbmVfc2VhcmNoX210ZiZhY3Rpb249Y2xpY2tSZWRpcmVjdCZkb05vdExvZ0NsaWNrPXRydWU&th=1

https://www.apple.com/de/shop/buy-ipad/ipad-air/64gb-grün-wifi

知道为什么前 3 个示例这样保存吗?有解决方案吗???

最后两个例子让我很困惑。我无法打开它们,因为 Swift 告诉我这些是无效的 URLs但是为什么?没有像其他示例中那样的空格。也没有任何中文字母或阿拉伯文字,这会使它们无效。

我真的被困在这里很高兴得到每一个帮助!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?