【问题标题】:Open link in browser inside iOS app with web techniques使用 Web 技术在 iOS 应用程序内的浏览器中打开链接
【发布时间】:2013-12-05 21:48:14
【问题描述】:

假设有人直接在带有 UIWebView 的简单 iOS 应用中运行 Web 应用。 是否可以使用 JavaScript 等 Web 技术在浏览器 (Safari Mobile) 中打开外部网站链接?如果是,怎么做?

【问题讨论】:

  • 或许使用iFrame
  • 不可能,因为应该能够加载许多不同的网站,并且大多数网站都阻止内联到 iframe。

标签: ios web hyperlink


【解决方案1】:

以编程方式打开 URL:

[[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 显式执行某些操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    • 2016-06-06
    • 1970-01-01
    • 2020-01-25
    • 2014-01-07
    • 2013-05-28
    • 1970-01-01
    相关资源
    最近更新 更多