Tracy9988 Xu
Tracy9988 Xu

Reputation: 41

When creating a viewController in Facebook ShareDialog, there is an error "Type of expression is ambiguous without a type annotation"

everyone, Because SwiftUI doesn't work with ViewControllers, I create one for facebook sharedialog. But there is an error "Type of expression is ambiguous without a type annotation". What's wrong with the codes? The error appears in the line "let dialog = ShareDialog"

import SwiftUI
import FBSDKShareKit
struct ActivityViewController: UIViewControllerRepresentable {
    var activityItems: [URL]
    var applicationActivities: [UIActivity]? = nil
    
    func makeUIViewController(context: UIViewControllerRepresentableContext<ActivityViewController>) -> UIActivityViewController {
        
        let controller = UIActivityViewController(activityItems: activityItems, applicationActivities: applicationActivities)
        
        controller.completionWithItemsHandler = { (activityType, completed, returnedItems, error) in
            
            if activityType == .postToFacebook {
                shareLink(from: activityItems.first!)
            }
            
        }
        return controller
    }
    func updateUIViewController(_ uiViewController: UIActivityViewController, context: UIViewControllerRepresentableContext<ActivityViewController>) {}
    func shareLink(from url: URL) {
        let controller = UIActivityViewController(activityItems: activityItems, applicationActivities: applicationActivities)
        
        let content = ShareLinkContent()
        content.contentURL = url
        
        let dialog = ShareDialog(
            viewController: UIApplication.shared.windows.first!.rootViewController,
            content: content,
            delegate: UIApplication.shared.windows.first!.rootViewController
        )
        dialog.show()
    }
}

Upvotes: 0

Views: 51

Answers (0)

Related Questions