我的应用程序中有一个WebView。
因为它是一个选项卡应用程序,所以我无法在网站上添加返回/转发按钮。
我想往后退[向前走]。从左侧向右滑动/边缘返回…就像iOS的Safari浏览器一样。
我该怎么做呢?我想我应该用“屏幕边缘盘手势识别器”,对吗?
发布于 2015-08-14 14:37:50
为什么不直接用滑动手势识别器呢?
UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipe:)];
UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipe:)];
// Setting the swipe direction.
[swipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft];
[swipeRight setDirection:UISwipeGestureRecognizerDirectionRight];
// Adding the swipe gesture on WebView
[webView addGestureRecognizer:swipeLeft];
[webView addGestureRecognizer:swipeRight];
- (void)handleSwipe:(UISwipeGestureRecognizer *)swipe {
if (swipe.direction == UISwipeGestureRecognizerDirectionLeft) {
NSLog(@"Left Swipe");
}
if (swipe.direction == UISwipeGestureRecognizerDirectionRight) {
NSLog(@"Right Swipe");
}
}发布于 2017-03-28 20:12:25
Swift 3中接受的答案:
override func viewDidLoad() {
super.viewDidLoad()
let swipeLeftRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(handleSwipe(recognizer:)))
let swipeRightRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(handleSwipe(recognizer:)))
swipeLeftRecognizer.direction = .left
swipeRightRecognizer.direction = .right
webView.addGestureRecognizer(swipeLeftRecognizer)
webView.addGestureRecognizer(swipeRightRecognizer)
}
@objc private func handleSwipe(recognizer: UISwipeGestureRecognizer) {
if (recognizer.direction == .left) {
if webView.canGoForward {
webView.goForward()
}
}
if (recognizer.direction == .right) {
if webView.canGoBack {
webView.goBack()
}
}
}发布于 2018-02-19 20:54:33
Swift 3中的答案& Swift 4
如果还有人有问题的话。这对我起了作用:
查找"didFinish“添加/替换以下代码。
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
self.didFinish()
webView.allowsBackForwardNavigationGestures = true
}您需要的主要代码只是一行。它位于self.didFinish()之后,但仍在{}括号内。
webView.allowsBackForwardNavigationGestures =真
https://stackoverflow.com/questions/32012428
复制相似问题