如何在UIWebView中显示本地网络URL的身份验证质询?

时间:2015-01-30 14:53:20

标签: ios objective-c uiwebview

我正在尝试通过UIWebView访问本地网络网址的安全性。当我通过safari访问它时,我收到了身份验证质询,但在我的应用程序UIWebView中没有出现相同的情况。如何让它出现?

E.g。 http://292.168.1.54/TestWeb/Test.pdf

此网址在Safari浏览器中工作,但同一网址未显示在我的UIWebView中。

任何指针,示例代码或链接都将非常有用。非常感谢。

2 个答案:

答案 0 :(得分:1)

有两种方法可以进行身份​​验证(在您的情况下可能是基本身份验证)挑战。

  1. -[UIWebViewDelegate webView:shouldStartLoadWithRequest:navigationType:]会向您提出请求。现在,您只需对同一网址发起第二次请求,并使用[NSURLConnectionDelegate connection:willSendRequestForAuthenticationChallenge:]来获取质询。然后,您将显示一个对话框并询问用户是否有凭据。将凭据保存在NSURLCredentialStorage中,然后重新加载页面。

  2. 处理http和https的
  3. Create a subclass of NSURLProtocol。与this answer类似,并在那里获得身份验证质询。

答案 1 :(得分:0)

我希望这段代码可以帮到你。

  • (无效)viewDidLoad中  {      [super viewDidLoad]; //从笔尖加载视图后进行任何其他设置。     self.webView.delegate = self;

        NSURL *url = [NSURL URLWithString:@"http://skinC.com/abc/"];// here you can write your url that you want to open
        NSURLRequest *requestURL = [NSURLRequest requestWithURL:url];
        [self.webView loadRequest:requestURL];
    
          AppDelegate *appDel = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    
    
        [self setNeedsStatusBarAppearanceUpdate];}