首页 > 解决方案 > 如何使用操作扩展来抓取网页内容?

问题描述

我正在尝试在我的 iOS 应用程序中使用操作扩展,以允许用户将购物项目保存到UITableView. 我希望共享扩展能够像这样工作:

  1. 用户在 Safari 中打开一个网页(例如Best Buy 上的这个页面)
  2. 用户点击 Share 按钮,Share Sheet 就会出现。
  3. 用户可以点击我的应用程序图标,UIViewController并且用户应该能够点击完成,并且网页详细信息(产品名称和价格)应该保存到我的应用程序中。

但是,我不确定如何获取某些网页内容,以便获取商品名称和价格。

我尝试使用Apple关于共享扩展的文档,但是,它是用 Objective-C 编写的,而不是 Swift。

我可以在didSelectPost()方法中使用以下代码获取网页 URL:

if let item = extensionContext?.inputItems.first as? NSExtensionItem {
    if let itemProvider = item.attachments?.first as? NSItemProvider {
        if itemProvider.hasItemConformingToTypeIdentifier("public.url") {
            itemProvider.loadItem(forTypeIdentifier: "public.url", options: nil, completionHandler: { (url, error) -> Void in
                if let shareURL = url as? NSURL {
                    print("Here is the URL: \(shareURL)")
                }
                self.extensionContext?.completeRequest(returningItems: [], completionHandler:nil)
            })
        }
    }
}

当用户在 Safari 共享表中点击我的应用程序时,如何从网站获取商品名称和商品价格以及 URL?

标签: iosswiftshare-extension

解决方案


推荐阅读