检测用户何时单击UIWebView或WKWebView中加载的Webform

时间:2015-04-09 11:22:50

标签: ios webforms uiwebview wkwebview

我想检测用户何时按下iOS网页视图中加载的HTML网页中存在的网络表单按钮(理想情况下使用WKWebView)。 这可能吗?如果是,如何

一般评论:

我知道WKWebView有一些限制,因此如果您知道一个与WKWebView一起使用的方法,请分享它。如果您知道一个适用于UIWebView的方法,请分享该方法,我可以将其用作开始为我的基于WKWebView的应用程序找到解决方案。

2 个答案:

答案 0 :(得分:3)

要使用WKWebView执行此操作,您需要符合WKNavigationDelegate,并设置webView的navigationDelegate

您可能正在寻找的方法是- webView:decidePolicyForNavigationAction:decisionHandler:,您可以在其中确定是否允许链接触摸。您可以从navigationAction.request.URL获取目标网址。

一个简单的例子:

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler
{
    if ([navigationAction.request.URL.relativeString hasPrefix:kLocalContentPrefix])
    {
        // Show some local content

        // Don't let the webview load this URL.
        decisionHandler(WKNavigationActionPolicyCancel);
    }
    else
    {
        // Allow the webview to load this URL.
        decisionHandler(WKNavigationActionPolicyAllow);
    }
}

要在UIWebView中执行此操作,它几乎相同,只是您只需符合UIWebViewDelegate中的-(BOOL)webView:shouldStartLoadWithRequest:navigationType:即可。但我建议尽可能使用Webkit!

答案 1 :(得分:0)

有一种解决方法,由shazron在Objective-C中展示https://github.com/shazron/WKWebViewFIleUrlTest将文件复制到/ tmp / www并从那里加载。