将Javascript从UIWebView升级到WKWebView(使用SwiftUI)

将Javascript从UIWebView升级到WKWebView(使用SwiftUI),swift,xcode,swiftui,uiwebview,wkwebview,Swift,Xcode,Swiftui,Uiwebview,Wkwebview,我刚刚将基于UIWebView的旧应用程序的所有代码升级到WKWebView。 但我实际上被一个javascript函数卡住了: func webViewDidFinishLoad(_ webView: UIWebView) { webView.isUserInteractionEnabled = true; let GetTokensFunction = "var BYB_GetFcmTokens = function(udid,token){ alert(udid)

我刚刚将基于UIWebView的旧应用程序的所有代码升级到WKWebView。 但我实际上被一个javascript函数卡住了:

func webViewDidFinishLoad(_ webView: UIWebView)
{
    webView.isUserInteractionEnabled = true;
    let GetTokensFunction = "var BYB_GetFcmTokens = function(udid,token){ alert(udid);alert(token); };"
    
    webView.stringByEvaluatingJavaScript(from: callGetToken);
}
特别是,我需要在警报中打印Firebase令牌,然后使用另一个javascript将其发送到我的MySQL数据库,以向某个用户发送用户通知。 您建议如何在基于SwiftUI的新WKWebView上实现此代码

Home.swift

ContentView.swift

如果您需要其他信息,请询问我!
希望能找到能帮助我的人,祝你有一个愉快的编码日;)

您的问题是将您的
webViewDidFinishLoad放在哪里,还是如何实现您在第二段中描述的功能?您好jnpdx,我需要实现函数
let GetTokensFunction=“var BYB_GetFcmTokens=function(udid,token){alert(udid);alert(token);};”
webViewDidFinishLoad
import SwiftUI
import WebKit

struct Home: UIViewRepresentable{
    
    let url: URL?
    
    func makeUIView(context: Context) -> WKWebView {
        let prefs = WKWebpagePreferences()
        prefs.allowsContentJavaScript = true
        let config = WKWebViewConfiguration()
        config.defaultWebpagePreferences = prefs
        return WKWebView (
            frame: .zero,
            configuration: config)
    }
    
    func updateUIView(_ uiView: WKWebView, context: Context) {
        guard let homeURL = url else {
            return
        }
        let request = URLRequest(url: homeURL)
        uiView.load(request)
    }

} 
import SwiftUI

struct ContentView: View{
    var body: some View{
        
        TabView{

            Home(url: URL(string:"home-url"))
                .tabItem{
                    Image(systemName: "house")
                    Text("Home")
                }
            Search(url: URL(string:"search-url"))
                .tabItem{
                    Image(systemName: "magnifyingglass")
                    Text("Search")
                }
            Notification(url: URL(string:"notificationpage-url"))
                .tabItem{
                    Image(systemName: "bell")
                    Text("Notification")
                }
            Menu(url: URL(string:"menu-url"))
                .tabItem{
                    Image(systemName: "gear")
                    Text("Menu")
                }
        }
        .accentColor(Color("tint"))
        
    }
}


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