我在互联网上获得的所有资源仅显示我的应用程序共享表中自定义操作的实现,而不是其他应用程序的共享表中的实现。
我提到的有关集成自定义操作的所有文章,都讨论将它们集成到您正在构建的应用程序的共享表中,而不是如何在其他应用程序的共享表中显示这些操作
Share Extension
添加到您的目标并构建自定义共享视图。
1. 将共享扩展添加到应用程序的项目中,方法是转到应用程序的项目页面并单击加号图标,或者文件 > 新建 > 目标并查找 Share Extension
2. 构建一个自定义视图,甚至在新创建的扩展中使用 SwiftUI。我将在这里提供一个模板视图作为示例:
import UIKit
import Social
import SwiftUI
class ShareViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
//view.backgroundColor = .red
/// Interactive Dismiss Disabled
isModalInPresentation = true
if let extensionContext = extensionContext,
let itemProvider = (extensionContext.inputItems.first as? NSExtensionItem)?.attachments {
let hostingView = UIHostingController(rootView: ShareViewTemplate(itemProvider: itemProvider,
extensionContext: extensionContext))
hostingView.view.frame = view.frame
view.addSubview(hostingView.view)
}
}
}
fileprivate struct ShareViewTemplate: View {
//MARK: - Properties
var itemProvider: [NSItemProvider]
var extensionContext: NSExtensionContext?
var body: some View {
VStack {
Text("Your Custom View using SwiftUI")
}
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .center)
.overlay(alignment: .topLeading) {
Button("", systemImage: "xmark") {
dismiss()
}
.padding()
}
}
private func dismiss() {
extensionContext?.completeRequest(returningItems: [])
}
}
3. 当您运行应用程序时,系统会询问您希望在哪个应用程序上运行共享扩展。假设我选择了画廊:
4. 然后在您选择的应用程序中,例如,Photos
应用程序,当使用共享选项时,您也会看到您的自定义应用程序:
5. 单击它时,您将看到自定义的 SwiftUI
视图:我希望能回答你的问题!让我知道!