Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 尝试在Swift5上的web视图中调用js函数时出错 当我处于Web视图中间时,我遇到了一个问题。_Ios_Swift_Null_Wkwebview - Fatal编程技术网

Ios 尝试在Swift5上的web视图中调用js函数时出错 当我处于Web视图中间时,我遇到了一个问题。

Ios 尝试在Swift5上的web视图中调用js函数时出错 当我处于Web视图中间时,我遇到了一个问题。,ios,swift,null,wkwebview,Ios,Swift,Null,Wkwebview,Web视图看起来很正常,加载Web视图时启动的js函数调用没有问题 当您试图从其他地方调用函数时,就会出现问题。我们找不到问题 请求功能 其他屏幕。swift DispatchQueue.main.async{ let storyboard=UIStoryboard(名称:“Main”,捆绑包:nil) 让myWebView=storyboard.InstanceEviewController(标识符为:“mainWebViewController”)作为!mainWebViewControll

Web视图看起来很正常,加载Web视图时启动的js函数调用没有问题

当您试图从其他地方调用函数时,就会出现问题。我们找不到问题

请求功能 其他屏幕。swift

DispatchQueue.main.async{
let storyboard=UIStoryboard(名称:“Main”,捆绑包:nil)
让myWebView=storyboard.InstanceEviewController(标识符为:“mainWebViewController”)作为!mainWebViewController
myWebView.sendToCode(jsonString)
}
WebView.Swift

@IBOutlet var mainWebView:WKWebView!
...
func sendToCode(uu结果:字符串){
evaluateJavaScript(“calljsfunc(\(result))”,completionHandler:{(any,err)->中的Void
打印(任何??“无任何”)
打印(错误??“无错误”)
})
}
“mainWebView.evaluateJavaScript”部分出错

错误为线程1:致命错误:在执行时意外发现零 隐式展开可选值

什么是零

但是我可以正常得到结果,即使我不加结果值,错误是一样的。有什么问题吗?我们如何解决这个问题


提前感谢

我认为这是一个视图,而不仅仅是一个函数调用文件,正如评论所说。因此,我通过将当前url值保存到本地存储并重新加载web视图解决了这个问题

请求其他屏幕的功能。swift

DispatchQueue.main.async{
self.callJsfunc()
}
func callJsfunc(){
将appDelegate=UIApplication.shared.delegate设为appDelegate
let storyboard=UIStoryboard(名称:“Main”,捆绑包:nil)
让moveScreen=storyboard.InstanceEviewController(标识符为:“mainWebViewController”)作为!mainWebViewController
moveScreen.modalPresentationStyle=.overCurrentContext
moveScreen.modalTransitionStyle=.CrossBluse
appDelegate?.window?.rootViewController=moveScreen
}
WebView.Swift

DispatchQueue.main.asyncAfter(截止日期:.now()+1){
self.sendToInAppCode(self.Result)
self.Result=“”
}

正如错误所说,您的web视图已解除分配,您无法访问不再存在的内容。您是否尝试设置断点并打印Web视图?是Absenti@Lu_u。我从来没有设置断点。那么你如何调试你的应用程序呢?@Lu_u。当我调试时,设置断点。但是,这并没有设置断点,而是发生了一个错误,错误被自动定位。我只是告诉你,如果你想知道发生了什么,你会发现没有webview,这就是它崩溃的原因