【问题标题】:User Interaction Enabled Javascript启用用户交互的 Javascript
【发布时间】:2012-07-07 13:01:22
【问题描述】:

我正在编写一个 Javascript 应用程序并将其封装在一个原生 iOS 应用程序中。我想在事件发生后阻止用户在包含 JS 应用程序的 UIWebView 上进行一两秒钟的交互。

通常我会使用 self.webView.userinteractionenabled = NO 但事件是在 Javascript 中触发的。如何阻止用户与 Web 视图交互?

猜测在某种触摸事件上返回 false?我想阻止它的滚动。

谢谢!

【问题讨论】:

    标签: javascript jquery objective-c ios uiwebview


    【解决方案1】:

    当事件发生在您的 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://";
    

    【讨论】:

    • 太好了,我认为这样的交流是不可能的!你让我的生活更轻松了
    猜你喜欢
    • 2017-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多