Ios 自动化wkwebview双击

Ios 自动化wkwebview双击,ios,swift,wkwebview,Ios,Swift,Wkwebview,我使用wkwebview并在视图控制器中显示验证码。验证码显示太小,但双击它会自动对齐。我怎样才能将其自动化 我尝试使用wkwebview委托执行此操作 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { print("") webView.scrollView.zoom(to: CGRect(x: 0, y: 0, width: self.view.frame.width, hei

我使用wkwebview并在视图控制器中显示验证码。验证码显示太小,但双击它会自动对齐。我怎样才能将其自动化

我尝试使用wkwebview委托执行此操作

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    print("")
    webView.scrollView.zoom(to: CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height), animated: true)
}
但它对齐不正确

问候


在html文件中尝试此脚本

<head><title>Captcha</title><script src="https://www.google.com/recaptcha/api.js" async defer></script><script type="text/javascript">
    (function() {
     var RECAPTCHA_SITE_KEY = 'YOUR_KEY';
     var RECAPTCHA_THEME = 'dark';

     var PAGE_BG_COLOR = '#222';

     function waitReady() {
     if (document.readyState == 'complete')
     documentReady();
     else
     setTimeout(waitReady, 100);
     }

     function documentReady() {
     while (document.body.lastChild)
     document.body.removeChild(document.body.lastChild);

     var div = document.createElement('div');

     div.style.position = 'absolute';
     div.style.top = '50%';
     div.style.left = 'calc(50% - 151px)';

     document.body.style.backgroundColor = PAGE_BG_COLOR;
     document.body.appendChild(div);

     var meta = document.createElement('meta');

     meta.setAttribute('name', 'viewport');
     meta.setAttribute('content', 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0');

     document.head.appendChild(meta);

     showCaptcha(div);
     }

     function showCaptcha(el) {
     try {
     grecaptcha.render(el, {
                       'sitekey': RECAPTCHA_SITE_KEY,
                       'theme': RECAPTCHA_THEME,
                       'callback': captchaSolved,
                       'expired-callback': captchaExpired,
                       });

     window.webkit.messageHandlers.reCaptchaiOS.postMessage(["didLoad"]);
     } catch (_) {
     window.setTimeout(function() { showCaptcha(el) }, 50);
     }
     }

     function captchaSolved(response) {
     window.webkit.messageHandlers.reCaptchaiOS.postMessage(["didSolve", response]);
     }

     function captchaExpired(response) {
     window.webkit.messageHandlers.reCaptchaiOS.postMessage(["didExpire"]);
     }

     waitReady();
     })();

    function captchaSolved(){alert("working");}</script></head><body><form action="?" method="POST"><div class="g-recaptcha" data-callback="captchaSolved" data-sitekey=""></div><br/><div class="g-recaptcha-response"></div></form></body>
Captcha
(功能(){
var RECAPTCHA_SITE_KEY='YOUR_KEY';
var RECAPTCHA_THEME='dark';
var PAGE_BG_COLOR='#222';
函数waitReady(){
如果(document.readyState=='complete')
documentReady();
其他的
设置超时(waitReady,100);
}
函数documentReady(){
while(document.body.lastChild)
document.body.removeChild(document.body.lastChild);
var div=document.createElement('div');
div.style.position='绝对';
div.style.top='50%';
div.style.left='计算(50%-151px)';
document.body.style.backgroundColor=页面背景颜色;
文件.正文.附件(div);
var meta=document.createElement('meta');
setAttribute('name','viewport');
setAttribute('content','width=devicewidth,initialscale=1,maximum scale=1,user scalable=0');
文件。头。子文件(元);
showCaptcha(div);
}
功能显示验证码(el){
试一试{
grecaptcha.render(el{
“站点密钥”:重述站点密钥,
“主题”:重述主题,
“回调”:已解决验证码,
“过期回调”:已过期,
});
window.webkit.messageHandlers.reCaptchaiOS.postMessage([“didLoad”]);
}接住{
setTimeout(函数(){showCaptcha(el)},50);
}
}
功能验证码(响应){
window.webkit.messageHandlers.reCaptchaiOS.postMessage([“didSolve”,response]);
}
功能已过期(响应){
window.webkit.messageHandlers.reCaptchaiOS.postMessage([“didExpire”]);
}
waitReady();
})();
函数captchaSolved(){alert(“working”);}

谢谢,您可以使用此重新验证码,但这仅适用于不可见的重新验证码。验证码已实施且有效。只有屏幕对齐不正确,请添加不带sitekey的html文件我需要此文件进行测试检查我的回答验证码显示正确,但我的代表现在不呼叫。你知道吗?func webView(uwebview:WKWebView,runjavascriptalertpanelwithmessagemessage:String,initiatedByFrame:WKFrameInfo,completionHandler:@escaping()->Void){completionHandler()}它不起作用,但验证码显示完美。成功后我错过了事件请确保使用
WKUserContentController didReceive
delegate