2

我在 UIWebView 中使用 touchend 事件如下:

window.ontouchend=function(touchEvent)
{
   ...
}

我用它来跟踪 UIWebView 内的滚动,这个事件通常在 iOS 5+ 中工作,但这个事件在 iOS 4 中不起作用!如何在 iOS 4 的 javascript 中跟踪 touchend 事件?

预先感谢您的帮助。

4

1 回答 1

1

我没有找到在 iOS 4 中使用此 JS 代码的方法所以我决定将此代码留给 iOS 5,但对于早期的 iO​​S 版本,我从这个问题中做出了决定: How to intercept touches events on a MKMapView or UIWebView objects ?

在我的 viewController 中,我编写了以下代码:

NSString *sysVersion=[[UIDevice currentDevice] systemVersion];
NSArray *sysVersionParse=[sysVersion componentsSeparatedByString:@"."];
int versionNum=[[sysVersionParse objectAtIndex:0] intValue]; //detect ios version
if (versionNum<5)
{
    WildcardGestureRecognizer * tapInterceptor = [[WildcardGestureRecognizer alloc] init];
    tapInterceptor.touchesEndCallback = ^(NSSet * touches, UIEvent * event)
    {
        NSString *jsString = [[NSString alloc] initWithFormat:@"window.ontouchend();"];
        [webview stringByEvaluatingJavaScriptFromString:jsString];
    };
    //and similarly for the other touch actions
    [webview addGestureRecognizer:tapInterceptor];
}

我希望有人能派上用场!

于 2012-08-24T13:50:52.710 回答