从协调器 swiftui 更改状态栏颜色和文本颜色

时间:2021-04-27 08:09:47

标签: swiftui statusbar

我正在尝试更改 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
                }
            }
        }
    }
}

0 个答案:

没有答案
相关问题