草庐IT

WKwebview

全部标签

ios - 在 Swift 中使用 WKWebView 进行身份验证

在我的iOS应用程序中,我想使用WKWebView将外部URL包装在应用程序中。此URL需要基本身份验证(它需要用户和密码凭据,如以下屏幕截图所示)。经过一些调查,我正在尝试使用didReceiveAuthenticationChallenge方法来启用自动登录,所以我不明白它是如何工作的。这是我的代码。importUIKitimportWebKitclassWebViewController:UIViewController,WKNavigationDelegate{varwebView:WKWebView?privatevarrequest:NSURLRequest{letbase

ios - WKWebView 和 NSURLProtocol 不工作

使用旧的UIWebView时,您可以通过实现自定义NSURLProtocol来捕获请求。我用它来处理需要身份验证的请求。我尝试了相同的代码,但它不适用于新的WKWebView,但我的协议(protocol)类根本没有被调用。有人遇到同样的问题还是有更好的方法使用WKWebView进行身份验证?在没有任何修改的情况下,我在decidePolicyForNavigationResponse委托(delegate)函数中得到了401响应。我还尝试使用NSURLConnection连接到服务器并使用NSURLConnectionDataDelegate处理身份验证。这行得通,但存储的凭据不会被

swift - 在 Swift 中从 WKWebview 获取 HTML

我使用WKWebView登录到一个网站,现在我想解析该网站的html。如何快速访问网站html?我知道它如何用于UIWebView但不知道WKWebView。感谢您的帮助! 最佳答案 如果您等到页面加载完成,您可以使用:webView.evaluateJavaScript("document.documentElement.outerHTML.toString()",completionHandler:{(html:Any?,error:Error?)inprint(html)})您还可以注入(inject)一些返回HTML的jav

ios - WKWebView 内容加载函数永远不会被调用

我尝试在WKWebView中的内容完全加载后调用一个函数。我在AppleSwiftWKNavigation文档中找到了“didFinishNavigation”函数。funcwebView(webView:WKWebView!,didFinishNavigationnavigation:WKNavigation!){println("WebViewcontentloaded.")}但是这个函数永远不会被调用。importUIKitimportWebKitclassViewController:UIViewControllerWKNavigationDelegate{overridefu

ios - 从 WKWebView 获取所有 cookie

虽然使用NSHTTPCookieStorage.sharedHTTPCookieStorage()从UIWebView获取cookie似乎很简单,但似乎WKWebView将cookie存储在其他地方。我做了一些研究,我能够从NSHTTPURLResponse对象中获取一些cookie。然而,这并不包含WKWebView使用的所有cookie:funcwebView(webView:WKWebView,decidePolicyForNavigationResponsenavigationResponse:WKNavigationResponse,decisionHandler:(WKNa

ios - WKWebView 在 iOS 8 下不加载本地文件

对于以前的iOS8beta,加载一个本地网络应用程序(在Bundle中),它对UIWebView和WKWebView都工作正常,我什至移植了一个网络游戏使用新的WKWebViewAPI。varurl=NSURL(fileURLWithPath:NSBundle.mainBundle().pathForResource("car",ofType:"html"))webView=WKWebView(frame:view.frame)webView!.loadRequest(NSURLRequest(URL:url))view.addSubview(webView)但在beta4中,我只是得

javascript - 从 WKWebView 中的 native 代码调用 JavaScript 函数

在iOS8中使用WKWebView,如何从native端运行JavaScript函数或以其他方式从native端与JavaScript通信?似乎没有类似于UIWebView的stringByEvaluatingJavaScriptFromString:的方法。(我可以在configuration.userContentController对象上使用-addScriptMessageHandler:name:以允许从JS到native的通信,但我正在寻找相反的方向。) 最佳答案 (我在此处提出问题后不久就为此提交了雷达。)前几天刚加了

ios - UIWebView 委托(delegate)方法 shouldStartLoadWithRequest : equivalent in WKWebView?

我的iOS7+应用程序中有一个模块,它是UIWebView。html页面加载创建自定义形状按钮的javascript(使用Raphaeljs库)。使用UIWebView,我将委托(delegate)设置为self。每次按下我的自定义按钮之一时,都会调用委托(delegate)方法webView:shouldStartLoadWithRequest:navigationType:。请求不应由html处理,而应由iOS代码处理。所以我使用了一个请求约定(在stackoverflow上的某个地方阅读),使用“inapp”作为我的请求方案。然后我检查主机并采取适当的措施。此代码在iOS7上运行

ios - 如何确定 WKWebView 的内容大小?

我正在尝试在iOS8及更高版本下运行时将动态分配的UIWebView实例替换为WKWebView实例,但我找不到确定WKWebView内容大小的方法。我的WebView嵌入在更大的UIScrollView容器中,因此我需要确定WebView的理想大小。这将允许我修改其框架以显示其所有HTML内容,而无需在WebView中滚动,并且我将能够为ScrollView容器设置正确的高度(通过设置scrollview.contentSize)。我试过sizeToFit和sizeThatFits都没有成功。这是我创建WKWebView实例并将其添加到容器ScrollView的代码://self.v

ios - 如何确定 WKWebView 的内容大小?

我正在尝试在iOS8及更高版本下运行时将动态分配的UIWebView实例替换为WKWebView实例,但我找不到确定WKWebView内容大小的方法。我的WebView嵌入在更大的UIScrollView容器中,因此我需要确定WebView的理想大小。这将允许我修改其框架以显示其所有HTML内容,而无需在WebView中滚动,并且我将能够为ScrollView容器设置正确的高度(通过设置scrollview.contentSize)。我试过sizeToFit和sizeThatFits都没有成功。这是我创建WKWebView实例并将其添加到容器ScrollView的代码://self.v