Tag: wkwebview

WKWebview注入cookie头导致redirect循环

我试图将我分别获得的会话cookie注入到WKWebview请求中,事实certificate这是相当痛苦的… 我设法使用这个解决scheme注入会话cookie,如下所示: // Acquiring the cookies let cookies = HTTPCookie.cookies(withResponseHeaderFields: headers, for: s.request!.url!) //Appending all the cookies into one raw string. var cookiesRawString = "" for c in cookies { cookiesRawString += "\(c.name)=\(c.value); " } var req: URLRequest = try! URLRequest(url: URL, method: method) // Then the injection itself request.setValue(cookiesRawString, forHTTPHeaderField: "Cookie") webView.load(req) 让我快速用伪码解释服务器逻辑: 服务器用附加的初始会话cookie接收对端点/端点1的呼叫 […]

意外的发现了nil,同时展开了一个可选值WKWebView获取参数

即时通讯工作在WKWebView和当我加载一个没有这样的参数的url,它工作正常 func loadAddress(lat:Double,lng:Double){ let requestURL = NSURL(string:"http://url.com/dev2/billboard/geo") let request = NSURLRequest(url: requestURL as! URL) webview.load(request as URLRequest) } 但我想发送用户的位置与获取这样的参数 func loadAddress(lat:Double,lng:Double){ let requestURL = NSURL(string:"http://url.com/dev2/billboard/geo/\(lat)/\(lng)") let request = NSURLRequest(url: requestURL as! URL) webview.load(request as URLRequest) } 它显示这个错误: 致命错误:意外地发现零,而解包可选值2017-02-02 16:43:36.645898像素[5112:1996136]致命错误:意外地发现零,而解包一个可选值 感谢提前

WKWebView:是否有可能预加载多个url?

刚刚将应用程序迁移到WKWebView ,并想知道是否有任何可能的方式来“预先加载”多个URL,但一次只显示一个? 我有一个5个url列表。 我已经知道,我将在某个时间点显示,我想通过预加载这些用于单个WKWebView来加快体验。

如何自动调整WKWebView的内容?

要在Swift中自动缩放一个优秀的旧WebView中的网页,我只需要: var w:UIWebView w.scalesPageToFit=true 我无法findWKWebView的等效方法,而且网页在我的应用程序中显得太大了。 我如何自动调整WKWebView的内容? 我正在使用Xcode 7和Swift

WkWebKit – 在加载页面上的JavaScript发现window.webkit是未定义的

我正在尝试使用WkWebKit在应用程序和页面之间来回交谈。 我可以通过使用WkWebView的evaluateJavascript方法来使javaScript执行正常,但是当我尝试在JavaScript页面上执行window.webkit.messageHandlers.myHandler.postMessage('hello world!')时,我发现window.webkit没有定义。 奇怪…我正在用ios 8.4的iPad模拟器运行。 我以为这是可用的原始版本8,不是? 我找不到任何人发表这个消息,所以也许我做错了什么? 我甚至将我的Safari Developer附加到模拟器的浏览器中,并在控制台中尝试查看window.webkit是什么,并且确实不存在。 请注意,我添加了一个初始脚本,以便在页面加载时运行(我在javascript编辑器中看到这个消息 – 消息被logging下来)。 我添加一个脚本消息处理程序以及… [编辑:在这里添加更多的代码细节]这是我的代码: – (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. NSLog(@"main view Controller viewDidLoad called…"); // if we are running on an OLD ios (pre v8) WKWebView will not exist. So don't create […]

为什么WKWebView不显示video? – 斯威夫特3

我成功地以编程方式在viewController (在viewDidLoad() )中添加了一个viewController 。 当加载包含video的url时,显示效果不错,但是当我尝试点击它(播放它)时,我看不到它,但audio正常工作。 奇怪的是我创build了一个新的项目,以确保它应该正常工作,它做了,我复制相同的确切代码的webView显示video,因为它应该。 在转换到Swift 3之前它工作正常。 这是在video上点击时的样子: 点击之前: 攻丝后: 我也试过另一个网页: 点击之前: 点击后(请注意状态栏现在隐藏): 简单来说,这是代码: override func viewDidLoad() { super.viewDidLoad() let web = WKWebView(frame: view.frame) let urlRequest = URLRequest(url: URL(string: "http://www.w3schools.com/html/html5_video.asp")!) web.frame = view.frame web.load(urlRequest) view.addSubview(web) } 我试图检查很多情况下没有任何输出。 我错过了什么? 提前致谢。

WKWebView是否被devise为UIWebView的替代品?

提出这个问题,因为我不知道为什么苹果引入WKWebView没有贬低UIWebView。 有一个想法是很重要的,因为我正在编写一个庞大的代码库,需要做出基于事实的决定。 是否有什么理由可以期待这两个阶级在将来共存,而不会被废弃? WKWebView纯粹是为了提高性能而devise的(使用JIT),并且可能仅用于某些用例? WKWebView的当前限制: https://mail.mozilla.org/pipermail/mobile-firefox-dev/2014-December/000993.html 我怎样才能使用WKWebView检索文件?

如何防止WKWebView重复请求访问位置的权限?

我在我的应用程序中有一个WKWebView ,当我开始浏览www.google.com或任何其他需要位置服务的网站时,会popup一个窗口,要求获得访问设备位置的权限,即使我已经接受分享我的位置。 我做的唯一一件事就是我在info.plist添加了NSLocationWhenInUseUsageDescription属性。 我无法在网上find任何答案,所以任何想法将非常感激。

如何debuggingWKWebView中的JavaScript代码

我在WKWebView中运行webapp时遇到了一些麻烦(特别是:某些button没有响应)。 我用这个教程作为指导,并成功地使webview显示我的web应用程序。 所以现在我想debugging的JavaScript代码。 我知道webapp的作品,因为我已经在android webview以及无数的浏览器(包括我使用的iPad模拟器上的safari)尝试过。 一些快速search后,我发现如何debugging使用Safari的UIWebView内的JavaScript 。 可悲的是,这似乎不适用于新的WKWebView。 当我导航到Develop->iPad Simulator我被告知有'没有Inspectable应用程序'。 我已经尝试了与UIWebView的简单的应用程序,通过Safari浏览器debugging完全相同的事情在那里完美的作品。 有没有一种方法来debuggingWKWebView内的JavaScript代码? 为了重现我的问题(使用swift),在xCode 6中启动一个新的单一屏幕项目,在ViewController.swift文件中复制以下提供的代码( kinderas提供),并将该sockets拖到View Controller下的View Controller Main.storyboard文件。 如果发生混淆,请参阅上面链接的教程。 import UIKit import WebKit class ViewController: UIViewController { @IBOutlet var containerView : UIView! = nil var webView: WKWebView? override func loadView() { super.loadView() self.webView = WKWebView() self.view = self.webView! } override func viewDidLoad() { super.viewDidLoad() var […]

我如何正确使用WKWebView实现身份validation?

我正在build立一个networking浏览器,而我在networking方面真的是新手。 我想testing代码示例波纹pipe,但我没有真正的生活的例子来处理: – (void)webView:(WKWebView *)webView didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential * _Nullable))completionHandler { CFDataRef exceptions = SecTrustCopyExceptions(challenge.protectionSpace.serverTrust); SecTrustSetExceptions(challenge.protectionSpace.serverTrust, exceptions); CFRelease(exceptions); completionHandler(NSURLSessionAuthChallengeUseCredential, [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust]); } 任何人都可以提供一个URL,我可以testing上面的代码? 编辑:我开始了一个赏金,因为我感到筋疲力尽。 我正在完成我创build的应用程序的过程,每天都有很多问题出现。 我真的很感谢帮助!