Tag: wkwebview

WKWebView相当于UIWebView的scalesPageToFit

我正在更新我的iOS应用程序以用WKWebViewreplaceUIWebView 。 但是,我不明白如何实现与WKWebView相同的行为。 使用UIWebView我使用了scalesPageToFit以确保网页pag显示与屏幕大小相同的大小(以便全屏显示而不滚动)。 我在网上发现了这个解决scheme,但它不起作用: – (void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation { NSString *javascript = @"var meta = document.createElement('meta');meta.setAttribute('name', 'viewport');meta.setAttribute('content', 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no');document.getElementsByTagName('head')[0].appendChild(meta);"; [webView evaluateJavaScript:javascript completionHandler:nil]; }

WKWebView导致我的视​​图控制器泄漏

我的视图控制器显示一个WKWebView。 我安装了一个消息处理程序,一个很酷的Web Kitfunction,可以让我的代码从网页内部得到通知: override func viewDidAppear(animated: Bool) { super.viewDidAppear(animated) let url = // … self.wv.loadRequest(NSURLRequest(URL:url)) self.wv.configuration.userContentController.addScriptMessageHandler( self, name: "dummy") } func userContentController(userContentController: WKUserContentController, didReceiveScriptMessage message: WKScriptMessage) { // … } 到目前为止这么好,但现在我发现我的视图控制器正在泄漏 – 当它被解除分配时,它不是: deinit { println("dealloc") // never called } 看起来,仅仅将自己安装为消息处理程序会导致保留周期,从而导致泄漏!

从缩放内容中取消WKWebView以与UIWebView相同的放大率进行渲染

问题 使用WKWebView代替UIWebView ,我注意到,与我的UIWebView相比, WKWebView的内容大大缩小了。 我想WKWebView停止这样做,只是从字面上尊重我的CSS值, UIWebView的方式。 上下文 我在我的本地iOS应用程序中使用networking浏览器,浏览iPad中的内容,在iPad上显示信息内容。 能够给内容和devise人员提供这样的信息是非常好的,并且说:“只是放入一些HTML内容,引用链接的CSS文件”。 使用UIWebView时,所有这些工作都非常棒。 但是,弹窗往往是相当紧凑的。 我正在经历的 在我狭窄的popup窗口中,内容被缩小,好像我的内容在整个网页被微型化以适合。 我可以看到,WKWebView主要用于在iOS上构build备用浏览器的人,或者构build混合应用程序,WKWebView本质上是接pipe屏幕。 WKWebView中的放大因子是不能设置的。 当然,用户可以放大,但这样做的目的是失败的。 我不在寻找放大的视口; 我正在寻找整个内容来适应和像UIWebView一样的自动换行。 使用WKWebView,在模拟器中,我会看到我想要的大小,如果我碰撞我的正文文本大小为50px而不是14px。 然而,这个代码在设备上甚至没有帮助,所以膨胀我的CSS尺寸也不是一个选项! UIWebView有什么错误? 那么,没有什么。 在iOS8中还没有被弃用,或许它还是有用的,就像我正在经历的那样。 但是我注意到,WKWebView很快。 而且我也看到了一些猜测,那就是UIWebView的写作是在墙上。 我想:“为什么不现在采用iOS8中更现代化的API?” 所以,我现在继续使用UIWebView,但我想切换到WKWebView,如果我可以让它尊重我的CSS大小。 这是我的原始CSS,UIWebView很好地呈现,但在popup窗口中的哪个WKWebView将以非常小的字体呈现: body { font-family: "HelveticaNeue"; font-size: 15px; line-height: 17px; color: #000000; } h1 { font-family: "HelveticaNeue-Bold"; font-size: 18px; line-height: 20px; color: #000000; } h2 { font-family: "HelveticaNeue-Bold"; font-size: […]

迁移到WKWebView

我想了解如何在iOS8中使用新的WKWebView,无法find很多信息。 我读了: http://developer.telerik.com/featured/why-ios-8s-wkwebview-is-a-big-deal-for-hybrid-development/ http://nshipster.com/wkwebkit/ 但是这如何影响现有的应用程序? 一个普通的UiWebView会从硝基java脚本引擎中获得加速吗,还是需要进行修改? 我们如何处理向后兼容? 所有的代码和例子,我可以find使用迅捷,这将是强制性的? 感谢在这个问题上的任何帮助!

我可以设置一个WKWebView使用的cookie吗?

我试图从UIWebView切换到WKWebView现有的应用程序。 当前的应用程序pipe理Web视图之外的用户login/会话,并将身份validation所需的cookie设置到NSHTTPCookieStore中。 不幸的是,新的WKWebView不使用NSHTTPCookieStorage中的cookie。 有没有另一种方法来实现这一目标?

为什么WKWebView不打开target =“_ blank”的链接

WKWebView不打开任何具有target =“_ blank”的链接。 在他们的HTML-Tag中的“在新窗口中打开”属性。

在Interface Builder中的WKWebView

看来XCode 6 beta中的IB对象模板仍在创build旧式对象(用于iOS的UIWebView和用于OSX的WebView)。 希望苹果将更新他们的现代WebKit,但在那之前,什么是在Interface Builder中创buildWKWebViews的最佳方式? 我应该创build一个基本的视图(UIView或NSView),并将其types分配给WKWebView? 我在网上find的大多数例子都以编程方式将它添加到容器视图中; 是因为某种原因更好吗?

从WKWebView获取所有的cookies

虽然通过使用NSHTTPCookieStorage.sharedHTTPCookieStorage()从UIWebView获取cookie似乎很简单,但似乎WKWebView将cookie存储在其他地方。 我做了一些研究,并从NSHTTPURLResponse对象中获取了一些cookie。 但是,这并不包含WKWebView使用的所有Cookie: func webView(webView: WKWebView, decidePolicyForNavigationResponse navigationResponse: WKNavigationResponse, decisionHandler: (WKNavigationResponsePolicy) -> Void) { if let httpResponse = navigationResponse.response as? NSHTTPURLResponse { if let headers = httpResponse.allHeaderFields as? [String: String], url = httpResponse.URL { let cookies = NSHTTPCookie.cookiesWithResponseHeaderFields(headers, forURL: url) for cookie in cookies { logDebug(cookie.description) logDebug("found cookie " + cookie.name + " " + […]

WKWebView不会加载iOS 8下的本地文件

对于之前的iOS 8testing版,加载一个本地的Web应用程序(在Bundle中),对于UIWebView和WKWebView都可以正常工作,甚至可以使用新的WKWebView API移植一个网页游戏。 var url = NSURL(fileURLWithPath:NSBundle.mainBundle().pathForResource("car", ofType:"html")) webView = WKWebView(frame:view.frame) webView!.loadRequest(NSURLRequest(URL:url)) view.addSubview(webView) 但在testing版4中,我只是得到一个空白的白色屏幕( UIWebView仍然工作),看起来像什么都没有加载或执行。 我在日志中看到一个错误: 无法创build沙盒扩展/ 任何帮助,以指导我正确的方向? 谢谢!