首页 > 解决方案 > 使用 WKWebView 在 swiftui 中执行 javascript 确认

问题描述

我目前正在尝试将 rails 应用程序包装在 webview 中,以便获得本机推送通知功能。我在尝试弄清楚如何在使用 swiftui 时让 javascript 确认和警报正常工作时遇到了麻烦。

这是我到目前为止得到的:

import SwiftUI
import WebKit

struct ContentView: View {
    var body: some View {
        WebView().edgesIgnoringSafeArea(.all)
    }
}

struct WebView: UIViewRepresentable {
  func makeUIView(context: Context) -> WKWebView {
    let webView = WKWebView()
    return webView
  }

  func updateUIView(_ webView: WKWebView, context: Context) {
    let appUrl = "http://localhost:3000"

    if let url = URL(string: appUrl) {
       let request = URLRequest(url: url)
       webView.load(request)
    }
  }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

这可以加载应用程序,除了警报和确认对话框外,一切似乎都工作正常。

标签: javascriptswiftswiftuiwkwebview

解决方案


我最终选择了https://github.com/lazaronixon/react-native-turbolinks。至少现在我可以只使用 javascript 而不是学习 swift 和 kotlin/java。


推荐阅读