Tag: wkwebview

cordovaiOS 9上的WKWebView状态?

iOS 8引入了WKWebView,这是一个具有更多function的iOS现代化networking视图,特别值得一提的是JIT编译的Javascript代码,可显着提高性能。 不过,iOS 8上的WKWebView有一些错误,这使得cordova默认使用它。 AFAIK有插件,可以使用它,但他们都说“testing”,“不完整”等。据我所知,iOS 9修复了错误,停止cordova违约WKWebView在iOS 8。 那么在iOS9上,cordova的WKWebView的状态是什么? 我似乎无法find任何有关此信息。 cordova默认为iOS 9上的WKWebView吗? 如果不是,为什么不能,而且可以正式启用另一种方式?

WKWebview – Javascript和本地代码之间的复杂通信

在WKWebView中,我们可以使用webkit消息处理程序调用ObjectiveC / swift代码,例如: webkit.messageHandlers.<handler>.pushMessage(message) 它适用于没有参数的简单的JavaScript函数。 但; 有可能调用本地代码与JScallback函数作为参数? 是否有可能从本地代码返回一个值到JS函数?

为什么INSPECT ELEMENT或WEB INSPECTOR或developerExtrasEnabled(WkWebView)在iOS中无法正常工作OSX

这是在WkWebView中简化INSPECT ELEMENT的代码片段 preferences.setValue(true, forKey:"developerExtrasEnabled") 这是在OSX中使用INSPECT ELEMENT的屏幕截图(右键单击) 右键点击相当于iOS中的点按并保持不过,我无法看到任何在OSX中看到的东西 这是完整的代码,如果有人想尝试

WKWebView不打开SOME target =“_ blank”链接

我已经在这里实施了接受的解决scheme,并且对一些网站有效。 例如:访问www.tomcruise.com并点击他的预告片。 每个链接都有target =“_ blank”,并且在实现之前链接的堆栈溢出post中提出的解决scheme后开始打开。 但现在我发现,如果我们到这里 ,点击任何链接(我试过的那个,写下这个问题的时候,有一个href标签,如下 <a rel="nofollow" target="_blank" href="http://www.nowmagazine.co.uk/celebrity-news/victoria-and-david-beckham-fighting-to-be-together-296082" class="ot-anchor aaTEdf" jslog="10929; track:click" dir="ltr">http://www.nowmagazine.co.uk/celebrity-news/victoria-and-david-beckham-fighting-to-be-together-296082</a> 当我点击WKWebView中的这个链接时,下面的WKUIDelegate方法确实被调用,但是具有navigationAction.request =“”,因此在调用webView.loadRequest(“”)时没有任何反应。 任何人都面临这个问题? optional func webView(_ webView: WKWebView, createWebViewWithConfiguration configuration: WKWebViewConfiguration, forNavigationAction navigationAction: WKNavigationAction, windowFeatures windowFeatures: WKWindowFeatures) -> WKWebView?{ if navigationAction.targetFrame == nil { webView.loadRequest(navigationAction.request) } return nil } 上面指定的href标签是什么特殊的,导致WKUIDelegate方法被调用一个空的url? 我们如何解决这个问题? 让我知道你是如何造成这个问题,因为我也有兴趣进行debugging。

WKWebView并没有在navigationResponse中提供所有的cookie

我正在尝试用WkWebViewreplace我工作的UIWebView项目。 我见过很多post,但是我没有得到任何从WKWebView获取所有cookie的好方法。 我也试过了这个evaluateJavaScript:@"document.cookie;" 但它给了我() 。 我也检查了这个post ,也试过这个解决scheme,据我所知,但它也没有奏效。 guard let cookies = NSHTTPCookieStorage.sharedHTTPCookieStorage().cookies else { return }上面的方法只适用于UIWebView,因为WKWebView不会立即回写cookies。 任何人都可以告诉我怎样才能从WKWebView的所有cookie。 谢谢 这种方法的工作,但没有给我所有的cookies。 func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) { if navigationResponse.response.url?.absoluteString.range(of: "") != nil || navigationResponse.response.url?.absoluteString.range(of: "") != nil{ let response = navigationResponse.response as? HTTPURLResponse let cookies = HTTPCookie.cookies(withResponseHeaderFields: response?.allHeaderFields as! [String […]

在Swift中使用WKWebView进行身份validation

在我的iOS应用程序中,我想使用WKWebView在应用程序中封装外部URL。 这个URL需要基本的authentication(它需要用户和密码凭证,就像下面的截图一样)。 经过一番调查,我试图使用didReceiveAuthenticationChallenge方法,为了启用一个自动login,所以我不理解它是如何工作的。 这是我的代码。 import UIKit import WebKit class WebViewController: UIViewController, WKNavigationDelegate { var webView: WKWebView? private var request : NSURLRequest { let baseUrl = "https://unimol.esse3.cineca.it/auth/Logon.do" let URL = NSURL(string: baseUrl)! return NSURLRequest(URL: URL) } /* Start the network activity indicator when the web view is loading */ func webView(webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation){ UIApplication.sharedApplication().networkActivityIndicatorVisible […]

iOS:WKWebView Vs UIWebView

我有一个应用程序/项目与部署目标版本 – iOS 10。 我已经使用了UIWebView ,现在已经废弃,并被WKWebView取代。 所以,我想用我的项目中的WKWebViewreplaceUIWebView。 它迫使我使用UIWebView (iOS 10)或将部署目标更改为iOS 11。 我不能改变部署目标,但作为一个中间件解决scheme,我添加了代码(编程)支持。 我的意思是,如果用户的设备操作系统是iOS 11(或以上),那么使用WKWebView否则使用UIWebView (iOS 10或更低版本)。 问题陈述:故事板的视图控制器不支持这两个版本,我的意思是,在故事板中,如果我将View Controller的部署目标设置为iOS 11,那么应用程序在iOS 10中崩溃(并且应该是明显的),如果我将视图控制器的部署目标设置为iOS 10,那么故事板不允许我build立项目。 对于iOS 10, WKWebView显示我这个错误: Xcode 9 GM – WKWebView NSCoding支持在以前的版本中被破坏 问题:如何让故事板(视图控制器)使用iOS 11的WKWebView和iOS 10的UIWebView ? 故事板(视图控制器)中是否有configuration设置或选项,可以让我添加两个接口?

在Safari中打开WKWebview target =“_ blank”链接

我试图让我的混合IOS应用程序使用Swift和WKWebviews打开target="_blank"的链接,或者如果URL包含http:// , https://或mailto:在Mobile Safari中。 从这个答案我得到这个代码。 func webView(webView: WKWebView!, createWebViewWithConfiguration configuration: WKWebViewConfiguration!, forNavigationAction navigationAction: WKNavigationAction!, windowFeatures: WKWindowFeatures!) -> WKWebView! { if navigationAction.targetFrame == nil { webView.loadRequest(navigationAction.request) } return nil } 首先,这对我没有任何帮助。 其次,我希望它在新窗口中打开。 我发现这个代码应该做这样的事情… if let requestUrl = NSURL(string: "http://www.iSecurityPlus.com") { UIApplication.sharedApplication().openURL(requestUrl) } 我怎么把这两个放在一起,让他们工作? 我需要添加到ViewController声明,使其工作?

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

我不这样做为什么我的问题被标记为这个重复,首先我执行javascript代码与evaluateJavaScript作为问题标题显示它显然是不同于那个问题。 更重要的是,我已经在这个问题的答案中尝试了这个问题的答案,而在我的问题主体的最后却没有取得成功。 我使用wkwebview.evaluateJavaScript()在swift3的wkwebview中执行javascript。 但alert()打开警报对话框。 并没有错误和问题表明。 虽然我可以使用evaluateJavaScript()来执行JavaScript代码来修改页面内容。 class WebViewController: UIViewController, WKScriptMessageHandler, WKNavigationDelegate, WKUIDelegate, UIScrollViewDelegate { var wk:WKWebView! self.wk.navigationDelegate = self self.wk.uiDelegate = self self.wk.scrollView.delegate = self self.wk.customUserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:53.0) Gecko/20100101 Firefox/53.0" … override func viewDidLoad() { super.viewDidLoad() … let config = WKWebViewConfiguration() self.wk = WKWebView(frame: CGRect(x: frame.minX, y: frame.minY+20, […]

WKWebView显示设备上的空白,在模拟器上工作

我的应用程序的一个模块是一个网站。 该网站主要包含一个SVG图纸,用自定义形状的button(使用Raphael.js库)来访问其他图纸(其他html页面与svg图纸)。 如果设备在iOS 7上,我使用一个UIWebView,一切工作正常。 对于iOS 8设备,我使用WKWebView。 我有一些问题,其中一些解决了这个职位 。 我可以在这些模拟器(iPhone 5 / iOS 8.0(12A365)和iPhone 5s / iOS 8.0)上看到我的网站,但我无法在iPod Touch上看到它(第5代,运行iOS 8.0.2)。 它显示一个空白的屏幕。 我不知道该找什么。 任何想法? 编辑 遵循@Dan Fabulich的回答( 在这里 ),我现在得到一个永远加载的web视图,永远不会完成加载。 他的回答告诉我们,从string加载html时,WKWebView存在一个错误。 他的答案是将html内容复制到一个新的子文件夹中,然后从该URL调用loadRequest 。 不幸的是,我仍然坚持一个非工作的webview。 任何线索? 什么是一个webview永远不会完成加载内容的原因?