使用网络技术在iOS应用内的浏览器中打开链接

时间:2013-12-05 21:48:14

标签: ios web hyperlink

假设某人正在使用UIWebView在一个简单的iOS应用程序中直接运行Web应用程序。 可以使用JavaScript等网络技术在浏览器(Safari Mobile)中打开外部网站链接吗?如果是的话,怎么办呢?

1 个答案:

答案 0 :(得分:2)

以编程方式打开网址:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"http://www.google.com"];

就WebView而言,您可以使用WebViewDelegate来捕获和检查用户选择的任何超链接。例如:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSURL *urlPath = [request URL];
    if (navigationType == UIWebViewNavigationTypeLinkClicked)
    {
        if ([[urlPath scheme] hasPrefix:@"http"]))
        {
            [[UIApplication sharedApplication] openURL:urlPath];
            return (NO);
        }

    }

    return (YES);
}

这应该打开浏览器应用程序中的任何超链接。

您还可以创建自定义协议,请参阅Android / iOS - Custom URI / Protocol Handling,并通过检查[url scheme]属性捕获同一委托处理程序中的协议。这将允许您使用javascript明确执行某些操作。