在我的应用程序中,我从UIWebView迁移到WKWebView,如何为WKWebView重写这些功能?
func webViewDidStartLoad(webView: UIWebView){}
func webViewDidFinishLoad(webView: UIWebView){}
和
func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
print("webview asking for permission to start loading")
if navigationType == .LinkActivated && !(request.URL?.absoluteString.hasPrefix("http://www.myWebSite.com/exemlpe"))!{
UIApplication.sharedApplication().openURL(request.URL!)
print(request.URL?.absoluteString)
return false
}
print(request.URL?.absoluteString)
lastUrl = (request.URL?.absoluteString)!
return true
}
func webView(webView: UIWebView, didFailLoadWithError error: NSError?) {
print("webview did fail load with error: \(error)")
let testHTML = NSBundle.mainBundle().pathForResource("back-error-bottom", ofType: "jpg")
let baseUrl = NSURL(fileURLWithPath: testHTML!)
let htmlString:String! = "myErrorinHTML"
self.webView.loadHTMLString(htmlString, baseURL: baseUrl)
}
didFailLoadWithError => didFailNavigation
webViewDidFinishLoad => didFinishNavigation
webViewDidStartLoad => didStartProvisionalNavigation
shouldStartLoadWithRequest => decidePolicyForNavigationAction
关于shouldStartLoadWithRequest
您可以写:
func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: ((WKNavigationActionPolicy) -> Void)) {
print("webView:\(webView) decidePolicyForNavigationAction:\(navigationAction) decisionHandler:\(decisionHandler)")
switch navigationAction.navigationType {
case .LinkActivated:
if navigationAction.targetFrame == nil {
self.webView?.loadRequest(navigationAction.request)
}
if let url = navigationAction.request.URL where !url.absoluteString.hasPrefix("http://www.myWebSite.com/example") {
UIApplication.sharedApplication().openURL(url)
print(url.absoluteString)
decisionHandler(.Cancel)
return
}
default:
break
}
if let url = navigationAction.request.URL {
print(url.absoluteString)
}
decisionHandler(.Allow)
}
对于didFailLoadWithError
:
func webView(webView: WKWebView, didFailNavigation navigation: WKNavigation, withError error: NSError) {
print("webView:\(webView) didFailNavigation:\(navigation) withError:\(error)")
let testHTML = NSBundle.mainBundle().pathForResource("back-error-bottom", ofType: "jpg")
let baseUrl = NSURL(fileURLWithPath: testHTML!)
let htmlString:String! = "myErrorinHTML"
self.webView.loadHTMLString(htmlString, baseURL: baseUrl)
}
问题内容: 我们的Oracle数据库遇到了严重的性能问题,我们想尝试将其迁移到基于MySQL的数据库(直接使用MySQL,或者最好是Infobright)。 问题是,在我们实际上不知道新数据库的所有功能是否符合我们的需求之前,我们需要让旧系统和新系统至少重叠数周(如果不是几个月)。 因此,这是我们的情况: Oracle数据库由多个表组成,每百万行。白天,实际上有成千上万的语句,我们无法停止迁移。
考虑: 为什么,我怎么才能让它起作用? 我的CPU是i5-10210u(支持AVX-256)。在X64版本/调试中运行。
TypeScript不是凭空存在的。 它从JavaScript生态系统和大量现存的JavaScript而来。 将JavaScript代码转换成TypeScript虽乏味却不是难事。 接下来这篇教程将教你怎么做。 在开始转换TypeScript之前,我们假设你已经理解了足够多本手册里的内容。 如果你打算要转换一个React工程,推荐你先阅读React转换指南。 如果你在写纯JavaScript,你大
我正在将我的应用程序从Log4J1.2迁移到Log4J2-2.8.1版本。下面是log4j.properties文件中现有的1.x配置。
我正在从log4j1迁移。由于最近的漏洞,x到log4j2。另一个依赖项似乎引用了旧的log4j1。x文件。 除了删除旧的log4j1. x文件之外,我还添加了log4j-core、log4j-api和log4j-1.2-api所有2.16版本。我查阅了迁移的留档https://logging.apache.org/log4j/2.x/manual/migration.html,并认为最后一个ja
选项(Options) Glide v4 中的一个比较大的改动是Glide库处理选项(centerCrop(), placeholder() 等)的方式。在 v3 版本中,选项由一系列复杂的异构建造者(multityped builders)单独处理。在新版本中,由一个单一类型的唯一一个建造者接管一系列选项对象。Glide 的generated API进一步简化了这个操作:它会合并传入建造者的选项