我正在研究 WKWebView 以在 WKWebView 中呈现 HTML。
My HTML has <a href ='#bottom'>
这个锚标记会将我的 WKWebView 推送到映射到它的内容。我的完整 HTML 是:
<!DOCTYPE html><html lang="en"><head> <title>Hello</title><style>body{ font-size: 40px;}</style> </head><body><a id='LnkTop'></a><p><a href='#bottom'> Link 1</a></p><div><h3><a id='top'> Link 1 </a>click will bring cursor here..</h3><p>HTML offers many of the conventional publishing idioms for rich text and structured documents, but what separates it from most other markup languages is its featuresfor hypertext and interactive documents. This section introduces the link (or hyperlink, or Web link), the basic hypertext construct.A link is a connection from one Web resource to another. Although a simple concept, the link has been one of the primary forces driving the success of the Web.A link has two ends -- called anchors -- and a direction. The link starts at the 'source' anchor and points to the 'destination' anchor,which may be any Web resource (e.g., an image, a video clip, a sound bite, a program, an HTML document, an element within an HTML document, etc.).</p></div><div id='bottom'><h3>Link 2 click will bring cursor here..</h3><p>HTML offers many of the conventional publishing idioms for rich text and structured documents, but what separates it from most other markup languages is its featuresfor hypertext and interactive documents. This section introduces the link (or hyperlink, or Web link), the basic hypertext construct.A link is a connection from one Web resource to another. Although a simple concept, the link has been one of the primary forces driving the success of the Web.A link has two ends -- called anchors -- and a direction. The link starts at the 'source' anchor and points to the 'destination' anchor,which may be any Web resource (e.g., an image, a video clip, a sound bite, a program, an HTML document, an element within an HTML document, etc.).</p></div></body></html>
我处理链接按钮的代码如下:
func webView(_ webView: WKWebView, didReceiveServerRedirectForProvisionalNavigation navigation: WKNavigation!) {
print("Strat to load")
}
func webView(_ webView: WKWebView, shouldPreviewElement elementInfo: WKPreviewElementInfo) -> Bool {
print("Raghav")
return true
}
func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error) {
print(error.localizedDescription)
}
func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
print("Strat to load")
}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
print("finish to load")
webviewReportNotes.evaluateJavaScript("window.scrollTo(0,0)", completionHandler: nil)
}
func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
print("error ")
print(error)
}
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
print("clicked")
if navigationAction.navigationType == WKNavigationType.linkActivated {
print("cancel")
///webviewReportNotes.evaluateJavaScript("window.scrollTo(0,0)", completionHandler: nil)
decisionHandler(.cancel)
self.webviewReportNotes.allowsLinkPreview = true
// webView.load(navigationAction.request)
}
else
{
print("allow")
decisionHandler(.allow)
}
}
func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!) {
print("comitted")
}
func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
print("entered")
if navigationAction.targetFrame == nil {
webView.load(navigationAction.request)
}
return nil
}
当单击锚标记时,它应该滚动 WKWebview 到在 HTML 中映射到它的内容,这没有发生。
I am using Xcode 10 and working on iOS 11
我不知道缺少什么我几乎尝试了所有方法,但它没有滚动到锚标记中的映射数据以查看 HTML,您可以将我的 HTML 粘贴到
https://codebeautify.org/htmlviewer/
请检查并让我知道我错过了什么。
先感谢您。:)