我正在尝试更改 WKScriptMessageHandler
协调器中的状态栏颜色,以便当我收到来自 webview 的消息时,它会更改状态栏颜色。我的问题是,正在更改状态栏颜色和文本颜色。大多数解决方案在 plist 文件或 ContentView
文件中更改它,这不是我想要的。我正在使用 swiftui 应用程序,所以我没有 SceneDelegate
文件。我已经尝试使用状态变量通过 contentView 中的 if/else 语句来更改它,但是协调器无法访问 ContentView 中的变量。这是我的代码:
extension SwiftUiWebView.Coordinator: WKScriptMessageHandler {
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
if message.name == "iOSNative" {
if let body = message.body as? [String: Any] {
let function = body["function"] as! String
switch function {
case "changeStatusBarColor": // Recieves message from webview "changeStatusBarColor"
// Changing status bar color code should go here
default:
break
}
}
}
}
}