プロフィール

pikab1

Author:pikab1
ただのチキンプログラマです。よろしく。


個人で作ったアプリ

AkiyoshiFan AkiyoshiFan ハンター文字 まとめDL

初/中級開発者におすすめ


カテゴリ


Twitter


月別アーカイブ


最新トラックバック


最新コメント


検索フォーム

ブロとも申請フォーム

QRコード

QR

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


UIWebViewでベーシック認証のサイトに対応させる方法がマジで分からない件

タイトル通り、マジで分からん。。。。

考えた事↓↓

1, WebViewのshouldStartLoadWithRequestでアクセス先URLを取得する。
2, return NO;で返す。
3, 取得したURLにNSURLConnectionでアクセスする。
4, 認証が必要なサイトの場合 didReceiveAuthenticationChallengeに入ってくる。
5, 認証する。
6, 受信したデータをwebviewで表示する。(loadHTMLString, loadData)
7, これだと、進む、戻るが出来なくなる。
6, 1で取得したURLにwebViewでloadRequestする。
7, これなら恐らくうまく行くけど、要するに常に2回通信が走る事になる。(認証が必要じゃないサイトであっても)

・要するにwebviewで進む/戻るを管理する為にはwebviewでそのままアクセスするか、loadRequestを使わないといけない。
・認証が必要なサイトなのかどうかを判断するのにはNSURLConnectionでアクセスしてみるしかない。
・認証が必要なサイトかどうかの判断にステータスコード401が帰ってきた場合っていう判断も可能かもしれないが、401が返ってきた場合webViewのデリゲートには入ってこないので、取得しようがない。


参考に、ベーシック認証に対応しているアプリでアクセスログを見てみた。

Sleipnirは、1回のアクセスしかきてなかった。
GalapaBRは、2回アクセスがきていた。
両ブラウザ共に、もちろん通常のサイトでは1回しか通信はきていない。
結果から見ると、Sleipnirはもはや下記のPrivateAPIを使用しているとしか思えないのですが、、、、
http://akisute.com/2011/09/uiwebview-private-api-basic.html

まじで誰か助けてくださいw


スポンサーサイト


 | ホーム |  page top


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。