如何从另一个 UIWebView 打开 UIWebView?

How to open UIWebView from another UIWebView?

我的一个视图控制器底部有一个 Web 视图,其中包含 links。 我想要做的是,当用户单击 Web 视图中的 link 之一时,它会打开一个 Web 视图,该视图占据屏幕,其中包含用户单击的页面内容。或者当用户在 Web 视图中单击其中一个 link 时,用户将被带到 Safari 以显示 link 的内容。 有人知道怎么做吗? 干杯。

以上是 Web 视图的屏幕截图,其中包含用户可以单击的 links..

您可以使用 UIWebView 的委托 - webView:shouldStartLoadWithRequest:navigationType:。在加载每个 url 之前,它将调用以下委托 -

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

您将能够从请求中获取请求 url 并推送新的视图控制器。

更多详情:https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIWebViewDelegate_Protocol/index.html#//apple_ref/occ/intfm/UIWebViewDelegate/webView:shouldStartLoadWithRequest:navigationType

试试这个:

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
{
    NSURL *requestURL =[ request URL ];
    if ( ( [ [ requestURL scheme ] isEqualToString: @"http" ] || [ [ requestURL scheme ] isEqualToString: @"https" ] || [ [ requestURL scheme ] isEqualToString: @"mailto" ])
        && ( navigationType == UIWebViewNavigationTypeLinkClicked ) )
    {
        return ![ [ UIApplication sharedApplication ] openURL: requestURL] ;
    }
    return YES;
}