mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 06:55:59 +00:00
Add support for sharing URLs and text. (#3546)
* Add support for sharing URLs and text. * Fix a bug where a stored draft would overwrite the shared text. * Add tests.
This commit is contained in:
@@ -42,14 +42,18 @@ class ShareExtensionViewController: UIViewController {
|
||||
return nil
|
||||
}
|
||||
|
||||
guard let fileURL = await itemProvider.storeData() else {
|
||||
MXLog.error("Failed storing NSItemProvider data \(itemProvider)")
|
||||
let roomID = (extensionContext?.intent as? INSendMessageIntent)?.conversationIdentifier
|
||||
|
||||
if let fileURL = await itemProvider.storeData() {
|
||||
return .mediaFile(roomID: roomID, mediaFile: .init(url: fileURL, suggestedName: fileURL.lastPathComponent))
|
||||
} else if let url = await itemProvider.loadTransferable(type: URL.self) {
|
||||
return .text(roomID: roomID, text: url.absoluteString)
|
||||
} else if let string = await itemProvider.loadString() {
|
||||
return .text(roomID: roomID, text: string)
|
||||
} else {
|
||||
MXLog.error("Failed loading NSItemProvider data: \(itemProvider)")
|
||||
return nil
|
||||
}
|
||||
|
||||
let roomID = (extensionContext?.intent as? INSendMessageIntent)?.conversationIdentifier
|
||||
|
||||
return .mediaFile(roomID: roomID, mediaFile: .init(url: fileURL, suggestedName: fileURL.lastPathComponent))
|
||||
}
|
||||
|
||||
private func openMainApp(payload: ShareExtensionPayload) async {
|
||||
|
||||
@@ -36,6 +36,10 @@
|
||||
<integer>1</integer>
|
||||
<key>NSExtensionActivationSupportsMovieWithMaxCount</key>
|
||||
<integer>1</integer>
|
||||
<key>NSExtensionActivationSupportsText</key>
|
||||
<true/>
|
||||
<key>NSExtensionActivationSupportsWebURLWithMaxCount</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>NSExtensionPointIdentifier</key>
|
||||
|
||||
Reference in New Issue
Block a user