我正在编写一个 Javascript 应用程序,并将其包装在一个原生 iOS 应用程序中。我想在事件发生后阻止用户在包含 JS 应用程序的 UIWebView 上进行一两秒钟的交互。
通常我会使用 self.webView.userinteractionenabled = NO 但事件是在 Javascript 中触发的。如何阻止用户与 Web 视图交互?
猜测在某种触摸事件上返回 false?我想阻止它滚动。
谢谢!
我正在编写一个 Javascript 应用程序,并将其包装在一个原生 iOS 应用程序中。我想在事件发生后阻止用户在包含 JS 应用程序的 UIWebView 上进行一两秒钟的交互。
通常我会使用 self.webView.userinteractionenabled = NO 但事件是在 Javascript 中触发的。如何阻止用户与 Web 视图交互?
猜测在某种触摸事件上返回 false?我想阻止它滚动。
谢谢!
当事件发生在您的 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 代码中调用委托方法:
window.location.href = "block://";