ThimraTV/MoviaBox/Base/WebView/SPCampaignWebViewController.swift
2025-05-12 14:20:00 +08:00

75 lines
2.0 KiB
Swift

//
// SPCampaignWebViewController.swift
// MoviaBox
//
// Created by on 2025/4/25.
//
import UIKit
class SPCampaignWebViewController: SPWebViewController {
var id: String?
override func viewDidLoad() {
super.viewDidLoad()
autoTitle = false
if urlStr == SPFeedBackListWebUrl {
self.title = "movia_feedback_history".localized
} else if urlStr == SPFeedBackHomeWebUrl {
self.title = "movia_profile_Feedback".localized
} else if urlStr == SPFeedBackDetailWebUrl {
self.title = "movia_feedback_details".localized
} else if urlStr == SPRewardsWebUrl {
self.title = "movia_rewards".localized
}
self.webView.scrollView.sp_addRefreshHeader { [weak self] in
self?.handleHeaderRefresh(nil)
}
}
override func handleHeaderRefresh(_ completer: (() -> Void)?) {
self.reload()
self.webView.scrollView.sp_endHeaderRefreshing()
}
override func webViewDidFinishLoad(_ webView: SPWebView) {
super.webViewDidFinishLoad(webView)
receiveDataFromNative()
}
}
extension SPCampaignWebViewController {
///
func receiveDataFromNative() {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { [weak self] in
guard let self = self else { return }
var dic = [
"token" : SPLoginManager.manager.token?.token ?? "",
"time_zone" : String.timeZone(),
"lang" : SPLocalizedManager.shared.currentLocalizedKey,
"type" : "ios",
"theme" : "theme_1",
]
if let id = id {
dic["id"] = id
}
if let json = dic.toJsonString() {
let js = "receiveDataFromNative(\(json))"
self.webView.evaluateJavaScript(js) { _, error in
}
}
}
}
}