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 に残すことにしましたが、以前の iOS バージョンでは、次の質問から決定を下しました: MKMapView または UIWebView オブジェクトのタッチ イベントをインターセプトする方法?

そして、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 に答える