サファリだけでなく、すべてのアプリでアクション拡張機能を介して URL を取得したいと考えています。たとえば、twitter.app でリンクを長押しすると、共有シートが開き、拡張機能でその URL を使用できます。可能であれば、javascript ファイルなしで実行したいと思います。
現在、私は js ファイルを使用してサファリで URL を取得していますが、これは機能しますが、Twitter などの他のアプリでは黒い画面しか表示されません。
let extensionItem = extensionContext?.inputItems.first as! NSExtensionItem
let itemProvider = extensionItem.attachments?.first as! NSItemProvider
let propertyList = String(kUTTypePropertyList)
if itemProvider.hasItemConformingToTypeIdentifier(propertyList) {
itemProvider.loadItemForTypeIdentifier(propertyList, options: nil, completionHandler: { (item, error) -> Void in
let dictionary = item as! NSDictionary
NSOperationQueue.mainQueue().addOperationWithBlock {
let results = dictionary[NSExtensionJavaScriptPreprocessingResultsKey] as! NSDictionary
let urlString = results["currentUrl"] as? String
self.url = NSURL(string: urlString!)
print(self.url)
}
})
} else {
print("error")
}
JavaScriptファイルを必要とせずに、すべてのアプリの共有シートからURLを取得したいと思います。
前もって感謝します