首页 > 解决方案 > 在 SwiftUI 中将 URL 和文本共享到 Facebook 或 Twitter?

问题描述

我创建了这个共享按钮,其中包含要共享的项目,例如 URL 和文本。

当我点击共享按钮时,虽然它只显示要共享的文本,但不显示 URL。

如何选择 URL 优先于文本?这样当分享到 Facebook 时它只需要 URL,但是当发布到 Twitter 时它使用 URL 以及 Text ?

import SwiftUI

struct ShareButton: View {
    @State private var isShareSheetShowing = false
    var url : String = "https://apple.com"
    
    var body: some View {
        Button(action: shareButton){
            Image(systemName: "square.and.arrow.up")
                .frame(width: 35, height: 35)
        }
    }
    
    
    func shareButton() {
        isShareSheetShowing.toggle()
        let items: [Any] = [URL(string: url)!, "Visit the Apple Website Text"]
        
        let av = UIActivityViewController(activityItems: items, applicationActivities: nil)
        
        UIApplication.shared.windows.first?.rootViewController!.present(av, animated: true, completion: nil)
    }
    
}

struct ShareButton_Previews: PreviewProvider {
    static var previews: some View {
        ShareButton()
    }
}

标签: swiftswiftui

解决方案


我也在寻找一种直接与 Facebook 分享 SwiftUI 的方法。

我的问题是如何在 SwiftUI 视图中包装以下函数(来自 Facebook iOS SDK)

let content = ShareLinkContent()
        content.contentURL = url
ShareDialog(
            fromViewController: self,
            content: content,
            delegate: self
        )

推荐阅读