0

私はJavascriptアプリケーションを作成しており、それをネイティブiOSアプリケーションでラップします。イベント後1〜2秒間、JSアプリを含むUIWebViewでのユーザーインタラクションをブロックしたいと思います。

通常、self.webView.userinteractionenabled = NOを使用しますが、イベントはJavascriptでトリガーされます。ユーザーがWebビューを操作できないようにするにはどうすればよいですか?

ある種のタッチイベントでfalseを返すと推測しますか?ブロックしたいのはスクロールです。

ありがとう!

4

1 に答える 1

0

Javascriptコードでイベントが発生した場合、次の方法を使用してネイティブラッパーにメッセージを送信できます。

次のUIWebViewDelegateメソッドを設定します(UIWebViewのデリゲートを設定することを忘れないでください)。

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
   NSURL *url = [request URL];
   if ([[url scheme] isEqualToString:@"block"]) {
      // do the your blocking code here
      return NO;
   }

   return YES;
}

イベントが発生したら、JavaScriptコードからdelegateメソッドを呼び出します。

window.location.href = "block://";
于 2012-07-07T14:14:57.100 に答える