我希望能够从Gumtree应用程序中获取商品的网址。
但是,当我在Gumtree应用程序中点击“共享”并点击我的应用程序时,我得到一个public.plain-text
类型标识符。
与对Facebook或eBay进行相同操作相比,我可以毫无问题地获取商品URL。好像是Gumtree。
如果我从Gumtree中的“共享表”中点击“消息”,则消息应用程序会显示项目标题和项目URL(这是我希望我的共享扩展名返回的内容),但我只会得到项目标题而没有URL。
这是我的共享扩展Info.plist:
我是否在做某些事情以致无法获取URL?还是Gumtree没有发布正确的信息?
我看过swift share extension not sharing amzon item和ios share extension unable to get shared URL from chrome,但没有针对性的解决方案对我有用。
这是我的扩展程序中用于检测typeIdentifier
...
if let inputItem = extensionContext!.inputItems.first as? NSExtensionItem,
let itemProvider = inputItem.attachments?.first {
if itemProvider.hasItemConformingToTypeIdentifier("com.apple.property-list") {
// Safari
itemProvider.loadItem(forTypeIdentifier: kUTTypePropertyList as String) { (dict, error) in
guard error == nil else {
// Error Alert
return
}
let itemDictionary = dict as! NSDictionary
let javaScriptValues = itemDictionary[NSExtensionJavaScriptPreprocessingResultsKey] as! NSDictionary
self.processValidURL(shareURL: URL(string: javaScriptValues["URL"]! as! String)!)
}
}
else if itemProvider.hasItemConformingToTypeIdentifier("public.url") {
// URL / IN-APP
itemProvider.loadItem(forTypeIdentifier: "public.url", options: nil) { (url, error) in
guard error == nil else {
// Error Alert
return
}
self.processValidURL(shareURL: url as! URL)
}
}