91 lines
2.5 KiB
Swift
91 lines
2.5 KiB
Swift
//
|
|
// SPCampaignWebViewController.swift
|
|
// MoviaBox
|
|
//
|
|
// Created by 佳尔 on 2025/4/25.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
class SPCampaignWebViewController: SPWebViewController {
|
|
|
|
var id: String?
|
|
|
|
var theme: String? = "theme_1"
|
|
|
|
///重试次数
|
|
private var receiveDataCount = 0
|
|
|
|
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)
|
|
receiveDataCount = 0
|
|
receiveDataFromNative()
|
|
}
|
|
|
|
}
|
|
|
|
extension SPCampaignWebViewController {
|
|
///设置登录信息
|
|
func receiveDataFromNative() {
|
|
receiveDataCount += 1
|
|
if receiveDataCount > 10 { return }
|
|
|
|
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 theme = theme {
|
|
dic["theme"] = theme
|
|
}
|
|
|
|
if let id = id {
|
|
dic["id"] = id
|
|
}
|
|
|
|
|
|
if let json = dic.toJsonString() {
|
|
let js = "receiveDataFromNative(\(json))"
|
|
self.webView.evaluateJavaScript(js) { [weak self] _, error in
|
|
guard let self = self else { return }
|
|
if error != nil {
|
|
self.receiveDataFromNative()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|