This commit is contained in:
zeng 2026-06-09 14:35:13 +08:00
parent aa526639c6
commit 2ac2e2249b

View File

@ -27,6 +27,7 @@ public class AppleWebLoginCore: NSObject, WKUIDelegate, WKNavigationDelegate {
let contentController = WKUserContentController() let contentController = WKUserContentController()
let configuration = WKWebViewConfiguration() let configuration = WKWebViewConfiguration()
configuration.defaultWebpagePreferences.allowsContentJavaScript = true configuration.defaultWebpagePreferences.allowsContentJavaScript = true
configuration.preferences.javaScriptCanOpenWindowsAutomatically = true
configuration.userContentController = contentController configuration.userContentController = contentController
configuration.preferences.setValue(true, forKey: "allowFileAccessFromFileURLs") configuration.preferences.setValue(true, forKey: "allowFileAccessFromFileURLs")
configuration.websiteDataStore = .nonPersistent() configuration.websiteDataStore = .nonPersistent()
@ -36,6 +37,7 @@ public class AppleWebLoginCore: NSObject, WKUIDelegate, WKNavigationDelegate {
configuration: configuration configuration: configuration
) )
associatedWebView.isHidden = true associatedWebView.isHidden = true
associatedWebView.customUserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15"
super.init() super.init()
@ -52,7 +54,6 @@ public class AppleWebLoginCore: NSObject, WKUIDelegate, WKNavigationDelegate {
let dataPopulationTimer = Timer(timeInterval: 1, repeats: true) { [weak self] _ in let dataPopulationTimer = Timer(timeInterval: 1, repeats: true) { [weak self] _ in
guard let self else { return } guard let self else { return }
removeUnwantedElements()
populateData() populateData()
} }
RunLoop.main.add(dataPopulationTimer, forMode: .common) RunLoop.main.add(dataPopulationTimer, forMode: .common)
@ -124,4 +125,16 @@ public class AppleWebLoginCore: NSObject, WKUIDelegate, WKNavigationDelegate {
} }
} }
} }
public func webView(
_ webView: WKWebView,
createWebViewWith configuration: WKWebViewConfiguration,
for navigationAction: WKNavigationAction,
windowFeatures: WKWindowFeatures
) -> WKWebView? {
if navigationAction.targetFrame == nil {
webView.load(navigationAction.request)
}
return nil
}
} }