代码之家  ›  专栏  ›  技术社区  ›  Georg Fritzsche

javascript alert()不在嵌入的WebView中工作

  •  13
  • Georg Fritzsche  · 技术社区  · 16 年前

    嵌入时 WebView 在应用程序中并在其中加载HTML页,javascripts alert() / confirm() /等等。不工作。

    在文档中查看,没有相关的设置 WebPreferences -唯一看起来相关的是 WebUIDelegate S -(void)webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame: 等。。。但是实现这些就意味着要为它们编写自定义对话框,这似乎是多余的…
    我不需要定制 韦布迪格莱特 希望继续使用默认值。

    当然,必须有一些简单的方法 警报() 等等,但是如何?

    2 回复  |  直到 14 年前
        1
  •  12
  •   RedMitch    15 年前

    下面是一个完成基本工作的示例代码。但是,您需要确保此对象注册为WebView的uidelegate。

    - (void)webView:(WebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame {
        NSAlert *alert = [[NSAlert alloc] init];
        [alert addButtonWithTitle:@"OK"];
        [alert setMessageText:message];
        [alert runModal];
        [alert release];
    }
    
        2
  •  5
  •   Georg Fritzsche    16 年前

    结果证明根本没有违约 WebUIDelegate 苹果似乎希望每个人都能为自己实现相同的基本功能。