Мы хотели бы открыть WebView с определенным местоположением, открытым в представлении. Поэтому мы хотели бы прокрутить до якоря ИЛИ перейти к нему перед его показом.Прокрутите до привязки в webView
Мы попытались выполнить javascript внутри viewWillAppear
, но это не сработает. Если мы выполним его в viewDidAppear
, у нас есть переход к якорю, который не является допустимым решением.
WebContentView (Простая Раскадровка с UIView
содержащим один WebView):
class WebContentViewController: UIViewController, UIWebViewDelegate {
@IBOutlet weak var webView: UIWebView!
var fileName: String?
var screenName: String?
override func viewDidLoad() {
super.viewDidLoad()
webView.backgroundColor = UIColor.white
let url = URLRequest(url: Bundle.main.url(forResource: fileName, withExtension: "html")!)
webView.loadRequest(url);
webView.delegate = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
guard let screenName = screenName else {
return
}
webView.stringByEvaluatingJavaScript(from: "window.location.href = '#2-einsatz-von-google-analytics';")
}
override func viewDidAppear(_ animated: Bool) {
//webView.stringByEvaluatingJavaScript(from: "window.location.href = '#2-einsatz-von-google-analytics';") //creates a jump instead of a scrole
}
}
Пробовали решение и известные вопросы:
- Использования
scrollTo(hash) {location.hash = "#" + hash;}; scrollTo("anchor");
How to scroll HTML page to given anchor using jQuery or Javascript? - Is it possible to send a hash tag to a file url in UIWebView?
Как мы можем выполнить «гладкую» прокрутку до якоря или прыжка, прежде чем он станет видимым?
Это [это] (http://stackoverflow.com/questions/39993770/how-to-get-correct-hight-when-we-have-some-content-on-uiwebview-in-swift-ios/ 39994174 # 39994174) полезен для вашего дела? –