union_ad_ssgf/ios/Classes/Page/FAQBaseAdPage.swift
2024-10-23 17:03:18 +08:00

79 lines
1.9 KiB
Swift

//
// FAQBaseAdPage.swift
// Pods
//
// Created by Jin on 10/23/24.
//
import Flutter
import UIKit
// - 广
class FAQBaseAdPage: NSObject {
let kPosId = "posId"
var posId: String!
var eventSink: FlutterEventSink?
var mainWin: UIWindow?
var rootController: UIViewController?
var width: CGFloat = 0
var height: CGFloat = 0
// 广
func addAdEvent(_ event: FAQAdEvent) {
if let eventSink = self.eventSink {
eventSink(event.toMap())
}
}
// 广
func showAd(call: FlutterMethodCall, eventSink: @escaping FlutterEventSink) {
guard let arguments = call.arguments as? [String: Any],
let posId = arguments[kPosId] as? String
else {
return
}
self.posId = posId
self.eventSink = eventSink
// window
self.mainWin = UIApplication.shared.keyWindow
// rootViewController
self.rootController = self.mainWin?.rootViewController
//
let size = UIScreen.main.bounds.size
self.width = size.width
self.height = size.height
loadAd(call: call)
}
// 广
func loadAd(call: FlutterMethodCall) {
print(#function) // 使 Swift print NSLog
}
// 广
func sendEvent(_ event: FAQAdEvent) {
if let eventSink = self.eventSink {
eventSink(event.toMap())
}
}
// 广
func sendEventAction(_ action: String) {
let event = FAQAdEvent(adId: self.posId, action: action)
sendEvent(event)
}
// 广
func sendErrorEvent(errCode: Int, errMsg: String) {
let event = FAQAdErrorEvent(
adId: self.posId, errCode: NSNumber(value: errCode), errMsg: errMsg)
sendEvent(event)
}
}