Files
tysdk-intergration/sdk-intergration/Packages/tysdk/Plugins/iOS/FBShareHelper.swift
2025-01-17 16:15:48 +08:00

89 lines
2.3 KiB
Swift

import Foundation
import FBSDKShareKit
import Pods_UnityFramework
@objc public class FBShareHelper : NSObject{
@objc public func FBShare(title: String, content:String, link : String){
guard let url = URL(string: link) else
{
NSLog("url faild")
return
}
let vc = UnityFramework.getInstance().appController().rootViewController
let c = ShareLinkContent()
c.quote = content
c.contentURL = url
let dialog = ShareDialog(
viewController: vc,
content: c,
delegate: FBShareHelperDelegate()
)
NSLog("show fb share dialog")
// Recommended to validate before trying to display the dialog
do {
try dialog.validate()
} catch {
print("fbshare faild ! \(error)")
}
dialog.show()
}
@objc public func MFBShare(title: String, content:String, link : String){
guard let url = URL(string: link) else
{
NSLog("url faild")
return
}
let c = ShareLinkContent()
c.quote = content
c.contentURL = url
let dialog = MessageDialog(content: c, delegate: FBShareHelperDelegate())
do {
try dialog.validate()
} catch {
print("messenger share faild ! \(error)")
}
if(dialog.canShow)
{
dialog.show();
}
else
{
print("messenger share faild !")
}
}
}
class FBShareHelperDelegate: SharingDelegate
{
public func sharer(_ sharer: any FBSDKShareKit.Sharing, didCompleteWithResults results: [String : Any]) {
print("Share success \(results)")
SendToUnity(success: true)
}
public func sharer(_ sharer: any FBSDKShareKit.Sharing, didFailWithError error: any Error) {
print("Share error \(error)")
SendToUnity(success: false)
}
public func sharerDidCancel(_ sharer: any FBSDKShareKit.Sharing) {
print("Share cancel")
SendToUnity(success: false)
}
private func SendToUnity(success:Bool)
{
let message = success ? "0" : "1"
UnityFramework.getInstance().sendMessageToGO(withName: "GameObje", functionName: "Func", message: message)
}
}