我正在使用WKWebView并设置了WKNavigationDelegate方法,一切看起来都很好。delegate方法按它们应有的方式响应,但不是我希望的100%。有些特定的广告是不可点击的。说不可点击我的意思是`funcwebView(_webView:WKWebView,decidePolicyFornavigationAction:WKNavigationAction,decisionHandler:@escaping(WKNavigationActionPolicy)->Void)`没有着火。并且让url的观察者至少看到哪种类型或URL仍然没有从那里得到结果。mainWebV
我想将JavaScript变量传递给Swift。我在JavaScript中遇到错误并搜索它,但没有得到任何结果。错误是:TypeError:Cannotreadproperty'messageHandlers'ofundefined有人可以帮忙吗?我在Xcode中的代码:importUIKitimportWebKitclassViewController:UIViewController,WKScriptMessageHandler,WKNavigationDelegate{varwebView=WKWebView()overridefuncviewDidLoad(){super.vi
我试图在加载WKWebView时获取它的高度,并使用委托(delegate)方法更改TableView中单元格的高度。下面的代码在iOS12之前运行良好。当我尝试在iOS13beta中运行时,单元格高度不断增加,因为固有大小每次都不断增加1。有什么办法可以阻止吗?overridevarintrinsicContentSize:CGSize{print("intrinsiccontentsizeid\(self.scrollView.contentSize.height)")self.delegate?.changeHeight(self.scrollView.contentSize.h
我在WKWebView中加载自定义HTML,在视口(viewport)中设置属性width=device-width。这在iOS12中完美运行,但在使用iOS13(beta7)时出现滚动问题。特别是当使用width=device-width时,无法滚动webview,所以部分内容不可见。只有当用户捏合缩放时才有可能这样做,然后神奇地开始可以滚动(水平和垂直)。我在文档中没有找到任何关于iOS13中WKWebView(甚至ScrollView)的更改可以证明这一点。我错过了什么吗?或者这可能是iOS13/Xcode11的错误? 最佳答案
我正在尝试在后台进程中创建多个WKWebViewView,然后在它们全部完成加载后将它们添加到主线程上的View。每个WKWebView都包含一个通过javascript呈现的图表,因此每个WKWebView的加载时间大约需要一秒钟,所以我试图将处理卸载到后台,这样UI就不会被阻塞。当dispatch_get_main_queue被注释掉时,这工作正常,但是ui被阻塞了5-10秒。只显示WKWebView的棕色背景,没有网页内容。varwebViews:[WKWebView]=[]varmyQueue=dispatch_get_global_queue(DISPATCH_QUEUE_P
我正在加载一些包含一些视频的网站。我正在使用WKWebView加载这些视频。我需要在加载页面时停止自动播放视频,因此我添加了以下java脚本代码来暂停视频。NSString*script=@"varvideos=document.querySelectorAll(\"video\");for(vari=videos.length-1;i>=0;i--){videos[i].pause();};";[webViewevaluateJavaScript:scriptcompletionHandler:^(idresult,NSError*error){NSLog(@"Error:%@",e
我正在尝试在UIView中添加一个WKWebView,代码似乎工作正常(页面已加载边界良好委托(delegate)打印消息没有错误)但是View(称为ViewForStuffInWeb)保持空白,其中没有任何内容有人可以解释为什么吗?importUIKitimportWebKitclassViewController:UIViewController,WKNavigationDelegate{@IBOutletvarViewForStuffInWeb:UIView!varwebView=WKWebView()letrequest="https://www.google.fr"overr
我正在尝试使用WKWebView.EvaluateJavaScript(string,WKJavascriptEvaluationResult)从我的javascript代码中获取一个值返回到我的应用程序。问题是,永远不会调用委托(delegate)WKJavascriptEvaluationResult。这是我的代码:C#:TaskCompletionSourcetcs=newTaskCompletionSource();webView.EvaluateJavaScript(javascript,(result,error)=>{tcs.SetResult(result);});re
我正在开发一个支持iOS8和9的应用,在我的应用中使用WKWebView获取一些View。暂时我已经将我的站点和子域列入ATS的白名单(等待一些SSL证书更改)。所以我认为我要描述的内容与ATS无关,但谁知道呢。我的本机代码在我的WKWebView中调用一个javascript函数,该函数使用jQuery触发ajaxGET请求。在iOS8中,它每次都有效。在iOS9中,它只是有时有效。似乎不到一半的时间。当我在我的iPhone连接的桌面上使用SafariDeveloperConsole连接到WKWebView时,我能够看到这个错误:加载资源失败:已取消据我所知,网络请求从未发出过。
我正在尝试将全局对象添加到WKWebView,其中加载的HTML期望存在某个对象(使用API)。我有以下设置来在加载后填充HTML。这在以下这个简单的示例中有效,但是对于使用loadRequest加载的“真实”内容,它失败并显示“[Error]ReferenceError:找不到变量”。有没有人有类似的经历?@implementationViewController-(void)viewDidLoad{[superviewDidLoad];[selfsetupWebView];}-(void)setupWebView{WKWebViewConfiguration*webConfigur