草庐IT

探秘WKWebView

全部标签

ios - WKWebView loadFileURL 只工作一次

我需要在WKWebView中加载一个本地文件。我正在使用新的ios9方法-(nullableWKNavigation*)loadFileURL:(NSURL*)URLallowingReadAccessToURL:(NSURL*)readAccessURL它在第一次加载时完美运行(正确调用了导航委托(delegate)),但如果我尝试加载一个新的不同文件,它什么也不做。修改了wkwebview实例中currentItem的URL。但是,如果我强制重新加载委托(delegate)方法didFinishNavigation,则会使用之前设置的URL调用它。我也尝试向前导航,但应该加载的文件

javascript - 如何在 WKWebView 中调试 javascript 代码

我在WKWebView中运行webapp时遇到了一些问题(特别是:一些按钮没有响应)。我用了thistutorial作为指南,并确实成功地让webview显示了我的webapp。所以现在我想调试javascript代码。我知道webapp可以工作,因为我已经在androidwebview和无数浏览器(包括我正在使用的iPad模拟器上的safari)中尝试过它。经过一些快速谷歌搜索后,我发现了howtodebugjavascriptinsideaUIWebViewusingSafari.遗憾的是,这似乎不适用于新的WKWebView。当我导航到Develop->iPadSimulator

ios - 如何清除 UIWebView/WKWebView 的内容?

我有一个可以通过不同URL循环的WebView。当我从一个切换到另一个时,我希望旧网页在加载下一个之前消失。如何在不重新分配webview的情况下执行此操作?如果我尝试[self.webViewloadHTMLString:@""baseURL:nil];并在同一函数中加载我的URL,之前的网页仍然存在:[self.webViewloadHTMLString:@""baseURL:nil];[self.webViewloadRequest:[NSURLRequestrequestWithURL:self.pageURL]];编辑:这对您来说显然不够清楚。下面的代码不会清除webview

ios - WKWebView间歇性黑屏问题

我正在将WKWebView集成到我们的应用程序中。并看到各种问题。最烦人和阻塞的是间歇性黑屏。它可以触发我的很多东西,导航,缩放等等。当我检查WKWebView中的View层次结构时,我可以看到很多subview都丢失了。当我联系检查员时,HTML已正确加载。有时,我可以在控制台日志中看到一条消息:Receivedaninvalidmessage"RemoteLayerTreeDrawingAreaProxy.CommitLayerTree"fromthewebprocess.我们已经向Apple提交了几个雷达。有没有人遇到过类似的问题并四处走走? 最佳答案

javascript - iOS WKWebView JS 在后台应用时不更新属性修改

嘿,我有一个带有WatchExtension的iOS应用程序。当启动AppleWatch应用程序时,它会启动iPhone应用程序并通过每隔几秒发送一次sendMessage调用来保持它的事件。iPhone应用程序然后导航到WKWebView中的网站,每隔几秒检查一次其内容,然后将一些数据发送到AppleWatch以便在那里显示。在AppleWatch上显示不断更新的内容非常好,我在iPhone上这样获取数据:self.webView.evaluateJavaScript("document.documentElement.outerHTML.toString()",completion

ios - 加速 loadHTMLString-d 内容的 WKWebView 呈现的策略?

我一直在尝试在UINavigationController中堆叠WKWebView,以此作为制作比PhoneGap更原生的混合应用程序的方法。它广泛工作-当WKWebView点击链接时,我连接到decidePolicyForNavigationAction,并使用它想要的链接推送一个新的ViewController。但是页面加载很慢。我已经做了我能想到的一切来加速它——它使用loadHTMLString而不是请求来确保一切都是本地的——我什至尝试剥离CSS和JS以查看是否可以加速它,但没有骰子。一个简短的、只有HTML的、本地存储的页面出现在空的WKWebView中仍然需要至少500毫

ios - 如何确定 WKWebView 崩溃的原因

我在为iOS8+构建的Swift应用程序中使用WKWebView。我在我的应用程序的各种View中使用WKWebView的实例,例如在我的选项卡ViewController的每个选项卡中,界面都是基于WKWebView的。我和我的测试人员注意到这些View有时会完全空白,在研究该问题后,WKWebView似乎会崩溃,结果就是空白View。幸运的是,由于WKWebView的运行方式,它不会导致应用程序崩溃,但我也不清楚如何捕获/记录有关导致它崩溃的原因的信息(如果这确实发生了什么)。如何确定WKWebView是否/为何崩溃?我目前解决这个问题的方法是我使用KVO(实际上是Facebook

javascript - alert() 在 WKWebview 中不起作用 evaluateJavaScript()

我不明白为什么我的问题被标记为与thisone重复,首先我用evaluateJavaScript执行javascript代码,因为问题标题显示它与那个问题明显不同。更重要的是,我注意到我在问题正文的末尾尝试了那个问题的答案,但没有成功。我使用wkwebview.evaluateJavaScript()函数在swift3的wkwebview中执行javascript。但是alert()没有打开警报对话框。并且没有错误和问题显示。虽然我可以使用evaluateJavaScript()来执行javascript代码来修改页面内容。classWebViewController:UIViewCo

javascript - 当没有互联网访问时,WKWebView 不会完成/超时

在我通过WkWebView导航到的本地HTML页面上有一个远程JavscriptAssets标签,它从未完成下载(在这两种情况下,iOS设备未连接到互联网,或者设备的互联网速度太慢).不幸的是,WKWebView永远不会中止尝试下载此Assets,也不会将其转移到我的WKNavigationDelegate(即-webView:didFailNavigation:withError:或-webView:didFinishNavigation:既不是被调用),所以用户会被一个空白的HTML页面困住,这个页面永远不会完全解析,也永远不会出错。谢天谢地,在某些情况下,我通过Safari远程i

javascript - 在 iOS 应用程序中更改 WKWebView 的来源

我有一个以WKWebView为中心的iOS混合应用程序,使用loadFileURL加载本地网络资源.WKWebView使用jQuery.ajax通过HTTPS与后端API通信。该应用程序仅限移动设备,我希望API也“仅限移动设备”。也就是说,我想阻止Chrome和Firefox等浏览器使用该API。我的策略是在API响应上设置Access-Control-Allow-Originheader,如下所示:Access-Control-Allow-Origin:app://myApp我可以将WKWebView的来源更改为app://myApp以避免浏览器查询API吗?