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

如何使iPhone热点登录UIWebView在Safari中打开链接?

  •  1
  • Jarrod  · 技术社区  · 16 年前

    接受后,将显示一个带有几个链接的新页面。我想让那些链接在Safari而不是UIWebView中打开。

    我知道有一种方法可以让UIWebView在Safari中打开链接,但这不是一个选项,因为这是登录wifi热点的默认UIWebView,而不是一个自定义应用程序。

    有没有其他方法可以让链接在Safari中打开而不是在UIWebView中打开?我尝试了javascript,并尝试将目标设置为空。

    编辑:在阅读了一些响应之后,似乎唯一的方法是设置UIWebView委托。我不认为这是一个选择,因为我不是那个启动UIWebView的人。

    3 回复  |  直到 16 年前
        1
  •  1
  •   Jeff Kelley    16 年前

    当iPhone连接到网络(至少是3.0版)时,它会检查是否被重定向到登录页面。如果是的话,它会按照您所说的在UIWebView内部进行身份验证。你有没有检查过浏览器在使用中报告了什么?如果不是mobilesafari,那么当有人第一次使用mobilesafari连接时,您可以在服务器端执行一些操作。

    如果它在检查重定向时确实报告为Mobile Safari,那么另一种选择是找出它要去的网站——也许是apple.com?然后,在服务器端,第一次 不同的 URL已加载,请重定向到您的链接。但是,这只在用户打开mobilesafari时起作用。

    除此之外,我认为你的要求超出了当前iPhone操作系统的范围。我建议向苹果公司提交一份“功能请求” bugreport.apple.com .

        2
  •  1
  •   Estel    14 年前

    - (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
    {
        if (navigationType == UIWebViewNavigationTypeLinkClicked &&
            [request.URL isFileURL] == false)
        {
            [[UIApplication sharedApplication] openURL:request.URL];
    
            return NO;
        }
    
        return YES;
    }
    

        3
  •  0
  •   Ben S    16 年前

    openURL 使用方法:

    NSURL *url = [[NSURL alloc] initWithString:@"http://example.com"];    
    [[UIApplication sharedApplication] openURL:url];
    [url release];
    

    苹果公司的例子可以作为 LaunchMe