Tag: wkwebview

WKWebView与本地文件

我正在用本地文件testingWKWebView,该文件在模拟器中工作,但在设备中不起作用 @interface EDPresentationViewController ()<WKNavigationDelegate,WKScriptMessageHandler> @property(nonatomic,strong)WKWebView *webView; @property(nonatomic,strong)EDPresentationController *presentationController; @end @implementation EDPresentationViewController -(void)viewDidLoad { [super viewDidLoad]; self.presentationController = [[EDPresentationController alloc]init]; WKWebViewConfiguration *webConfiguration = [[WKWebViewConfiguration alloc]init]; self.webView = [[WKWebView alloc]initWithFrame:self.view.frame configuration:webConfiguration]; NSURL *presentationFolder = [self.presentationController url]; NSURLRequest *request = [NSURLRequest requestWithURL:presentationFolder]; [self.webView loadRequest:request]; } 我授予从以下url: NSURL *presentationFolder = [self.presentationController url]; 是好的,因为我testing了与UIWebview相同的代码,并工作! 我总是得到相同的错误: Could not create a sandbox […]

cachingWKWebView

我在自定义互联网浏览器遇到问题。 我正在使用WKWebView。 我在我的应用程序中有选项卡。 如果我点击一个标签,在WKWebView中加载新的NSURLRequest。 我需要实现一个caching。 如果用户按下一个标签,我宁愿加载caching数据而不是新的。 不幸的是,这段代码不起作用: NSURLRequest *request = [[NSURLRequest alloc] initWithURL:URL cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:0.0]; [self.webView loadRequest:request]; 你可以指导我如何实现cachingWKWebView?

iPhone X上的WKWebView页面高度问题

我发现如果我用WKWebView viewport-fit=cover 和 body :{height:100%} html body的高度仍然达不到iPhone X的底部,等于safeArea的高度,但背景色可以覆盖全屏。 https://ue.qzone.qq.com/touch/proj-qzone-app/test.html 我在一个全屏的WKWebView中加载这个页面来重现这个问题。

WkWebView不会加载HTMLstring

我试图在WkWebView中显示一个我以前下载并存储在一个string中的HTML页面。 这是我如何设置我的WkWebView: webView = WKWebView(frame: self.blankView.frame) webView.navigationDelegate = self webView.loadHTMLString(tipShow.htmlString!, baseURL: nil) view.addSubview(webView) 我试图显示的HTMLstring是: <html> <style type="text/css"> * { -webkit-touch-callout: none; -webkit-user-select: none; /* Disable selection/copy in UIWebView */ } </style> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>TITLE</title> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.css"> <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <script src="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script> </head> <body> <div data-role="page" id="page1"> <div align=justify style="margin-left:20px; margin-right:20px"> […]

WKWebView支持哪些文件types?

UIWebView支持文件types的完整列表,详见本Apple技术问答文档 : 除了HTML内容, UIWebView还可以显示特定的文档types。 iPhone OS 2.2.1支持以下文档types: Excel (.xls) Keynote (.key.zip) Numbers (.numbers.zip) Pages (.pages.zip) PDF (.pdf) Powerpoint (.ppt) Word (.doc) iPhone OS 3.0支持这些额外的文档types: Rich Text Format (.rtf) Rich Text Format Directory (.rtfd.zip) Keynote '09 (.key) Numbers '09 (.numbers) Pages '09 (.pages) 这是伟大的。 然而,现在他们通常build议开发者使用WKWebView而不是UIWebView因为它速度更快,并且提供了显着的JavaScript性能改进。 这很好,除了我找不到支持的文件types列表。 它似乎支持UIWebView没有的媒体文件(如Quicktime .mov文件),但现在Word文档(.docx)似乎不工作。 有没有WKWebView支持的文件格式列表?

如何从WKWebView获取cookie?

如何从WKWebView实例获取所有 Cookie? 这是我到目前为止所尝试的: 我尝试使用- [WKWebView evaluateJavaScript:completionHandler:]来评估document.cookie – 不幸的是,结果不包含标记为HttpOnly的 cookie。 根据介绍现代WebKit API(WWDC 2014会话206) ,应该可以从WKNavigation实例获取response对象。 但是,根据类参考 , WKNavigation不包含任何公共方法/属性。

什么时候可以使用带有通用链接的SFSafariViewController,WKWebView或UIWebView?

在“ iOS应用程序search编程指南”的“ 通用链接”部分,苹果说: 如果您实例化SFSafariViewController,WKWebView或UIWebView对象来处理通用链接,iOS会在Safari中打开您的网站而不是打开您的应用程序。 但是,如果用户从embedded的SFSafariViewController,WKWebView或UIWebView对象中点击通用链接,iOS将打开您的应用程序。 “处理通用链接”是什么意思? 我是否可以用SFSafariViewController , WKWebView或UIWebView打开给定的URL? 它只适用于-[UIApplicationDelegate application:continueUserActivity:restorationHandler:] ,还是有一个超时的地方? 这是否意味着我们无法在SFSafariViewController , WKWebView或UIWebView打开URL?

在WKWebview中设置useragent

如何在WKWebView中设置一个自定义的useragentstring? 我试图embedded我的应用程序的版本,以便我的服务器端可以看到什么function可用。 我发现了以下方法: let userAgent = "MyApp/1.33.7" request.setValue(userAgent, forHTTPHeaderField: "User-Agent") NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) {(response, data, error) in let content = NSString(data: data, encoding: NSUTF8StringEncoding) self.web!.loadHTMLString(content!, baseURL: url) } self.web!.loadRequest(request); 但是这意味着useragent只为这个单一的请求设置。 第一个其他请求(例如转发),将意味着useragent被重新设置为默认值。 我如何更永久地configurationwkwebview使用我的自定义useragentstring?

WKWebKit JavaScript未连接到视图层次结构时执行

我想从UIWebView切换到WKWebView 。 在我的代码中,网页视图实例是在屏幕外创build的(没有附加到视图层次结构),并加载了URL。 加载完成后,网页视图会在单独的UIWindow中呈现给用户(如插页式广告)。 一切工作正常与UIWebView ; 但切换到WKWebView ,angular度的JavaScript代码行为意想不到的方式。 在做了一些研究之后,我发现当WKWebView实例没有附加到视图层次结构时,javascript定时器(和http加载器)被挂起:如果你启动了一个在分离的WKWebView中运行的javascript定时器 – 它不会直到Web视图被附加。 任何人都可以build议一个可能的解决方法(除了附加一个隐藏的Web视图的关键窗口,然后将其移动到另一个窗口)? 我已经创build了一个示例项目来演示这个问题(或者更可能是WebKitfunction) https://dl.dropboxusercontent.com/u/148568148/WebKitViewTest.zip testing应用程序加载一个JavaScript的网页调度计时器和加载http请求。 您可以使用开关来显示/隐藏Web视图(设置“隐藏”属性),并将其从视图层次结构中附加/分离。 如果Web视图被附加(隐藏或可见),并且您点击Load ,那么JavaScript工作正常:您可以看到success或failure警报对话框。 如果它被分离 – 定时器只会在附加到视图层次结构时触发(将“Detached”切换到“on”,点击“Load”,等待几秒钟,然后切换回“off”)。 您也可以从Safari Web Inspector中检查console.log 。 以下是testing网页源代码: <!doctype html> <html ng-app="project"> <head> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.16/angular.js"></script> <script src="project.js"></script> </head> <body> <div id="simple" ng-controller="MyController" data-ng-init="callNotify(message);"> </div> </body> </html> 和javascript: angular. module('project', []). controller('MyController', ['$scope','notify', function ($scope, notify) { $scope.callNotify […]

包括iOS8的WebKit框架未通过validation

我正在使用WebKit框架的WKWebView,当试图提交到app store,我得到这个错误: Your app contains non-public API usage. Please review the errors, correct them, and resubmit your application. The app links to non-public libraries in Payload…: /System/Library/PrivateFrameworks/WebKit.framework/WebKit 如果我将部署目标设置为8.0,那么错误消失,但我也想支持iOS 7。 这个错误似乎是iOS7也有WebKit框架的结果,但当时它是私有的。 我想因此dynamic链接到WebKit库。 我怎样才能在XCode中做到这一点?