2016-05-06 14 views
2

UIWebViewに問題があります。私はWindows認証でWebサイトを開くことはできません... Safariブラウザでは、WebView Controlのポップアップが表示され、何も起こりませんでした。UIWebViewウィンドウ認証が迅速なプログラミング

誰かがこの問題を解決できますか?ここで

私のコードは

class MainViewController: UIViewController, UIWebViewDelegate, MFMailComposeViewControllerDelegate { 

    @IBOutlet weak var webView: UIWebView! 

    override func viewDidLoad() { 
     super.viewDidLoad(); 

     webView.delegate = self; 

     let url = NSURL (string: "http://test.raphaels.com/mobile/"); 
     let requestObj = NSURLRequest(URL: url); 
     webView.loadRequest(requestObj); 
    } 
} 

のiOSシミュレータ上の非セキュアサーバー(URL)に完全に罰金作品のこの部分のコードは、Xcodeの上でiPhoneシミュレータ/エミュレータのthats。しかし、私は上記のURLを使用する(イントラネットからのみアクセスすることができます)。それはブラウザでユーザー名/パスワードを要求し、iPhoneエミュレータで停止します。私はどのように私はユーザー名とパスワードを提供することができます助けてください。私はインターネット上で検索し、多くの例を見つけました。残念ながら、誰も迅速なプログラミングをしていませんでした。

は私が失敗した解決策を書き込もうとしましたので、下記の失敗コード

override func viewDidLoad() { 
    super.viewDidLoad(); 

    webView.delegate = self; 


    let username = "username11"; 
    let password = "password22"; 
    let loginString = NSString(format: "%@:%@", username, password); 
    let loginData: NSData = loginString.dataUsingEncoding(NSUTF8StringEncoding)!; 
    let base64LoginString = loginData.base64EncodedStringWithOptions(nil); 

    // create the request 
    let url = NSURL (string: "http://test.raphaels.com/mobile/"); 
    let request = NSMutableURLRequest(URL: url) 
    request.HTTPMethod = "POST" 
    request.setValue("Basic \(base64LoginString)", forHTTPHeaderField: "Authorization") 




    webView.loadRequest(request); 
} 
+0

あなたはそれに2つのHTTPのを持っているURLを持つことを意味していましたか?また、NSURL(文字列:_)はオプションのNSURLを返します。NSMutableURLRequestを作成する前に、NSURLをアンラップする必要があります。 – Ethan

+0

2つのhttps?その1つのURL。以前に見たことがありますが、セキュリティ保護されたURLをブラウズすると、ユーザ名/パスワードのjavascriptによるアラートが表示され、正しく入力されないと、401エラーコードでアクセスが拒否されます。 – Sandra

+0

しかし、私はそれに2つの "http://"部分文字列を持つURLを見たことがありません。 あなたのletのurl = NSURL(文字列: "のhttp://" + "のhttp:// ...") //申し訳ありませんstackoverflowのは、URL – Ethan

答えて

5

あり、それは、コードの一部の下で働いていた:-)。

override func viewDidLoad() { 
     super.viewDidLoad(); 

     webView.delegate = self; 

     let urlComponents = NSURLComponents(string: "http://test.raphaels.com/mobile/"); 
     urlComponents.user = "username11"; 
     urlComponents.password = "password22"; 

     let url = urlComponents.URL; 

     let requestObj = NSURLRequest(URL: url!); 
     webView.loadRequest(requestObj); 
    } 
0

のObjective Cのバージョン

NSURLComponents *urlComponents = [NSURLComponents componentsWithString:@"http://test.raphaels.com/mobile/"]; 

[urlComponents setUser:@"username11"]; 
[urlComponents setPassword:@"password22"]; 

NSURL *url = [urlComponents URL]; 
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 
[webView loadRequest:requestObj]; 
関連する問題