SynthReel/SynthReel/Base/webview/SRAppWebViewController.swift
2025-11-28 15:03:10 +08:00

84 lines
2.4 KiB
Swift

//
// SRAppWebViewController.swift
// SynthReel
//
// Created by CSGY on 2025/11/28.
// Copyright © 2025 SR. All rights reserved.
//
import UIKit
class SRAppWebViewController: SRBaseWebViewController {
var id: String?
private var receiveDataCount = 0
var theme: String? = "theme_16"
override func viewDidLoad() {
super.viewDidLoad()
self.autoTitle = false
if webUrl == kSRFeedBackListWebUrl {
self.title = "synthreel_feedback_history".localized
} else if webUrl == kSRFeedBackHomeWebUrl {
self.title = "synthreel_feedback".localized
} else if webUrl == kSRFeedBackDetailWebUrl {
self.title = "synthreel_feedback_detail".localized
} else if webUrl == kSRLogoutWebUrl {
self.title = "synthreel_account_deletion".localized
}else if webUrl == kSRRewardWebUrl {
self.title = "Rewards".localized
}
}
override func fa_webViewDidFinishLoad(_ webView: SRWebView) {
super.fa_webViewDidFinishLoad(webView)
receiveDataCount = 0
receiveDataFromNative()
}
}
extension SRAppWebViewController {
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" : SRAccountManager.manager.token?.token ?? "",
"time_zone" : String.timeZone(),
// "lang" : FALanguageManager.manager.currentLanguageKey,
"lang" : "en",
"type" : "ios",
"device-id" : SRDeviceId.shared.id
]
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()
}
}
}
}
}
}