【问题标题】:How to manipulate DOM in UIWebView in iOS如何在 iOS 的 UIWebView 中操作 DOM
【发布时间】:2013-04-14 15:07:12
【问题描述】:

我在我的应用程序中使用 UIWebView。当用户单击 UIWebView 中网站中的链接时,我想调用一个 Objective-C 函数。 有没有办法做到这一点? UIWebView 允许更改吗?

【问题讨论】:

  • 当用户点击 UIWebView 中的链接时,我只想调用一个 Objective-c 函数
  • 你可以通过webView:shouldStartLoadWithRequest:navigationType:委托方法来做到这一点。

标签: iphone ios uiwebview


【解决方案1】:

首先钩住它。 [yourwebview setDelegate:self]

使用下面的委托方法

webView:shouldStartLoadWithRequest:navigationType

喜欢:

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
    NSURL *url = request.URL;
    NSString *urlString = url.absoluteString;
    //put your logic here, like 
    if (![url.scheme isEqual:@"yourscheme"]) {// or query contains or [url absolutestring] contains etc
        return NO;
    }
    return YES;
}

如果你想操作 DOM 或者调用 UIWebView 的任何函数,那么使用:

[yourwebView stringByEvaluatingJavaScriptFromString:@"alert('hello')"];
[yourwebView stringByEvaluatingJavaScriptFromString:@"$('#domid').hide();"];

【讨论】:

    【解决方案2】:

    正如其他答案中所述,您应该使用 webview 委托的

    webView:shouldStartLoadWithRequest:navigationType 
    

    从 WebView 中走私一些数据的方法。你可以在这里阅读我关于这个主题的详细回答:how to use javascript in uiwebview to get the clicked button id?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-19
      • 1970-01-01
      • 2017-10-19
      • 1970-01-01
      • 2020-03-26
      • 1970-01-01
      • 2016-12-02
      相关资源
      最近更新 更多