ios - 我没有在 WKWebview 中获得一个网页按钮的点击事件,以及如何使用 java 脚本将点击事件添加到 wkwebview
问题描述
如果没有用于按钮操作的事件,我已经发布了我使用的委托方法。如何使用 javascript 添加该事件。如何在我的视图控制器中使用功能主义者。
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
print(#function)
guard let url = navigationAction.request.url else {
decisionHandler(.allow)
return
}
if url.absoluteString.contains("ios-development-course") {
// this means login successful
decisionHandler(.cancel)
}
else {
decisionHandler(.allow)
}
}
解决方案
当您单击基本上是 Web 视图中的链接的按钮时,导航发生在 Web 视图中。
您可以使用委托方法来允许或取消该导航。
public func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
var shouldLoad = true
if navigationAction.navigationType == .linkActivated.
//user clicked button on web view
decisionHandler(shouldLoad ? .allow : .cancel)
}
}
推荐阅读
- webstorm - WebdriverIO 5 - 'browser.$(...).click 不是函数' 错误
- swift - 如何使用 swiftUI 沿自定义路径移动视图/形状?
- android - 将两个 RxJava 请求转换为一个请求
- python - 如何在具有其他特征(如 OpenCV 中的划痕)的灰度图像中提取文本
- mysql - Laravel - 如何立即更新表记录保存在其中
- java - Selenium:每当有新聊天可用时,如何单击聊天页面中的元素
- eof - 嗨,我收到 EOF 错误,我该如何纠正?
- r - 在箱线图中指定点符号的plotly问题
- scala - Scala 转换为泛型类型
- mysql - 如何在 MySql docker 镜像中安装 sudo 和 nano 命令