代码之家  ›  专栏  ›  技术社区  ›  Toastor

UIWebView:在Safari中打开一些链接,在视图中打开一些链接

  •  2
  • Toastor  · 技术社区  · 15 年前

    到目前为止,我已经使用UIWebView委托捕获了链接请求。在我执行

    -(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
    

    我会使用URL检查请求 lastPathComponent pathComponents

    不过,我刚刚发现,上述方法只有在iOS4.0之后才可用,这将使应用程序在iPad上毫无用处。而且我觉得我用的是肮脏的解决方案。

    在委托方法中处理请求时,是否有其他方法可以以某种方式“标记”我的内容中的链接,使它们以后易于区分?

    多谢!!

    2 回复  |  直到 15 年前
        1
  •  1
  •   hotpaw2    15 年前

    您可以将URL请求转换为字符串,并对网站上的子目录进行比较,例如仅以“”开头的URL http://www.sample.com/myapp/myappswebcontent/ ,相对于URL的初始子字符串。还有什么,送去野生动物园。

        2
  •  1
  •   Nava Carmon    15 年前

    例如,在控制器中,包含一个web视图

    [webView setPolicyDelegate:self];
    

    然后重写decidePolicyForNavigation方法(这只是一个示例):

    - (void)webView:(WebView *)sender decidePolicyForNavigationAction: (NSDictionary *)actionInformation request:(NSURLRequest *)request frame:(WebFrame *)frame decisionListener:(id <WebPolicyDecisionListener>)listener
    {       
        if ([[actionInformation objectForKey:WebActionNavigationTypeKey] intValue]  == WebNavigationTypeLinkClicked) {
            [listener ignore];
            [[NSWorkspace sharedWorkspace] openURL:[request URL]];
        }
        else
            [listener use];
    }
    

    HTH公司