// // 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 = "Feedback History".localized } else if urlStr == SPFeedBackHomeWebUrl { self.title = "Feedback".localized } else if urlStr == SPFeedBackDetailWebUrl { self.title = "Feedback Details".localized } else if urlStr == SPRewardsWebUrl { self.title = "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 } } } } }