2011-08-16 2 views
6

パスワードとユーザー名が必要なURLをUIWebviewで開きたいとします。私のローカルWifiルータ(192.168.1.1)を開くなど。しかし、私がコードに従ってみると、パスワードとユーザー名が必要なSafariとしてのポップアップはありません。URLを開くには、uiwebviewでユーザー名とパスワードが必要ですか?

NSURL *url = [NSURL URLWithString:@"http://192.168.1.1"]; 
NSURLRequest *httpReq = [NSURLRequest requestWithURL:url]; 
[self._webView loadRequest:httpReq]; 

誰かがNSURLConnectionDelegateを使用するように私に言ったので、私はこれを知っているが、私はのUIWebViewに許可ページを表示する方法を知ってscroll down toパソコンへ転送。

+0

ここで説明したように、Authorizationフィールドを追加してみてください: http://stackoverflow.com/questions/1973325/nsurlconnection-and-basic-http-authentication – SVD

答えて

7

これは

NSURL *url = [NSURL URLWithString:@"http://username:[email protected]"]; NSURLRequest *httpReq = [NSURLRequest requestWithURL:url]; [self._webView loadRequest:httpReq];

3

NSURLConnectionDelegateでconnection:didReceiveAuthenticationChallenge:を実装する必要があります。詳細については、アップルの「URLローディングシステムプログラミングガイド」のAuthentication Challengesの章を読んでください。

+1

しかし、どのように要求をロードするためのUIWebViewを使用するには? – ZYiOS

1

はのUIWebViewが応答を識別するための任意のメカニズムを提供していないのに役立ちます。したがって、応答のステータスコード(あなたのケースでは404)を識別するgithubプロジェクトのUIWebViewHttpStatusCodeHandlingプロジェクトでは、1つの解決策が説明されています。

しかし、主な欠点は、NSURLConnectionを使用してリクエストを再度ロードする必要がある各リクエストです。しかし、この場合、NSURLConnectionもキャンセルできます。

もう1つの解決方法は、Javaスクリプトの使用である必要があります。応答のステータスコードを提供するJavaスクリプトを検索します。

関連する問題