计算是否在webView上单击了链接-iPhone

计算是否在webView上单击了链接-iPhone,iphone,objective-c,uiwebview,webview,Iphone,Objective C,Uiwebview,Webview,我使用自定义webview在用户触摸webview时显示选项卡栏。但当我在webview中单击链接时,tabbar会显示一段时间,然后页面加载。我正在使用此自定义webview检测触摸: 我可以检测链接是否被点击吗?因为webview上有一个链接,所以webview会检测到触摸并加载页面。。。我想阻止它 提前感谢。使用Javascript 我不会阻止页面加载,而是将Javascript注入到webview中,这样触摸链接就不会有任何作用 不久前我有一个类似的问题。不要禁用所有链接(如另一个问题)

我使用自定义webview在用户触摸webview时显示选项卡栏。但当我在webview中单击链接时,tabbar会显示一段时间,然后页面加载。我正在使用此自定义webview检测触摸:

我可以检测链接是否被点击吗?因为webview上有一个链接,所以webview会检测到触摸并加载页面。。。我想阻止它


提前感谢。

使用Javascript

我不会阻止页面加载,而是将Javascript注入到webview中,这样触摸链接就不会有任何作用

不久前我有一个类似的问题。不要禁用所有链接(如另一个问题),只需查找要禁用的特定链接,然后删除其
href
属性

使用UIWebview委托

或者,如果您希望能够响应试图单击链接的用户(可能是为了给他们一条消息),您可以设置UIWebview的委托并实现该方法,如果试图加载的URL是您想要阻止的URL,则返回
NO


另一方面,通常最好的做法是保留一个白名单,而不是黑名单来进行这种排除。与其阻止你不想要的链接,不如阻止所有链接,除了那些你知道可以安全导航的链接。

好的,我做了一个解决办法,自己解决了

我的链接位于页面的顶部和底部,因此我通过以下代码获得屏幕坐标,如果pos.ysome value,则不显示菜单

UITouch * touch = [touches anyObject];
CGPoint pos = [touch locationInView: [UIApplication sharedApplication].keyWindow];
NSLog(@"Position of touch: %.3f, %.3f", pos.x, pos.y);

希望这对某人有所帮助…

UIWebViewNavigationTypeLinkClicked=告诉您何时单击了链接。 只检查一下你的电话

self.webView.delegate=self

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    if (navigationType == UIWebViewNavigationTypeLinkClicked) {
        [[UIApplication sharedApplication] openURL:request.URL];
        return NO;
    }
    return YES;
}

实际上我想阻止显示tabbar,而不是加载页面。。。当用户触摸webview时,如果它是触摸的链接,那么我不想显示选项卡栏,但如果它不是链接,我想显示选项卡栏。。。希望现在更清楚。