Ios Swift WKWebView未将全局处理程序注入网站

Ios Swift WKWebView未将全局处理程序注入网站,ios,swift,Ios,Swift,我正在尝试将一些数据从网站发送到我的应用程序。我设置了一些警报,告诉我window.webkit.messageHandlers是否存在,它总是告诉我它不存在 ContentView.swift 导入快捷界面 导入WebKit 结构ContentView:View{ var body:一些观点{ WebView(请求:url请求(url:url(字符串:“我的网站url”)!) } } 结构WebView:UIViewRepresentable{ let请求:URLRequest let控制器:

我正在尝试将一些数据从网站发送到我的应用程序。我设置了一些警报,告诉我window.webkit.messageHandlers是否存在,它总是告诉我它不存在

ContentView.swift

导入快捷界面
导入WebKit
结构ContentView:View{
var body:一些观点{
WebView(请求:url请求(url:url(字符串:“我的网站url”)!)
}
}
结构WebView:UIViewRepresentable{
let请求:URLRequest
let控制器:WVController=WVController()
func makeUIView(上下文:context)->WKWebView{
let configuration=WKWebViewConfiguration()
让jsEventHandler=“jsEventHandler”
let preferences=WKPreferences()
preferences.javaScriptEnabled=true
让contentController=WKUserContentController()
添加(控制器,名称:jsEventHandler)
configuration.userContentController=contentController
configuration.preferences=首选项
控制器测试(str:“asd”)
返回WKWebView(帧:.0,配置:配置)
}
func updateUIView(uiView:WKWebView,context:context){
uiView.load(请求)
}
}
结构内容视图\u预览:PreviewProvider{
静态var预览:一些视图{
ContentView()
}
}
WebView.swift

<代码>导入基础 导入WebKit // 类WVController:NSObject、WKScriptMessageHandler、WKNavigationDelegate{ func userContentController(userContentController:WKUserContentController,didReceive消息:WKScriptMessage){ guard let response=message.body as?String else{return} 打印(答复) 印刷品(“约翰”) } 函数测试(str:String){ 打印(str) } } 网站js-不要评判,需要一些快速的东西

函数send(){
var=1;
如果(!window.wekbit)
存在=2;
否则{
if(!window.wekbit.messageHandlers)
存在=3;
否则{
if(!window.wekbit.messageHandlers.jsEventHandler)
存在=4;
否则{
if(!window.wekbit.messageHandlers.jsEventHandler.postMessage)
存在=5
}
}
}
打印消息(“存在”+存在)
}
“asd”字符串不记录日志-用于测试目的

在网站上,当我调用send()时,它总是打印“2”,因此window.webkit不存在


我是swift新手,我找到的所有教程都是ViewController.swift,但我没有该文件,所以看起来它实际上是 webkit.messageHandlers.jsEventHandler.postMessage()


不带“窗口”。前缀

如果这解决了您的问题,请不要忘记将其标记为答案。它将帮助其他用户。