UIWebViewにBASIC認証サポート用のUIを追加する
UIWebViewは標準ではBASIC認証に対応していませんが、URLProtocolの仕組みを使うことで認証が要求されたタイミングで任意の処理フックできます。
そこで、モバイルSafariと同様にUIAlertViewでユーザー名・パスワードを入力するダイアログをポップアップ表示するライブラリを作成しました。
ソースコードはMITライセンスで公開しています
https://github.com/synapsesoft/UIWebViewAuthentication
インストール
Cocoapodsで行います。
platform :ios, '5.0'
pod 'UIWebViewAuthentication', :podspec => 'https://raw.github.com/synapsesoft/UIWebViewAuthentication/master/UIWebViewAuthentication.podspec'
使い方
本ライブラリはUIWebViewを継承したUWAWebViewクラスを提供します。
典型的な使い方としては、ViewControllerに追加するUIWebViewをUWAWebViewに置き換えます。
// #import <UIWebViewAuthentication/UWAWebView.h>
- (void)viewDidLoad
{
[super viewDidLoad];
self.webView = [[UWAWebView alloc] initWithFrame:self.view.frame];
[self.view addSubview:self.webView];
NSString* url = @"http://www.httpwatch.com/httpgallery/authentication/authenticatedimage/default.aspx";
NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
[self.webView loadRequest:request];
}
一度入力したパスワードはiOSが管理の認証情報に登録されます。これを一時的に保存しないように変更する場合 authentication.persistence プロパティへ NSURLCredentialPersistenceForSessionを設定します。
self.webView.authentication.persistence = NSURLCredentialPersistenceForSession;
アラート内のメッセージについてはiOSアプリの国際化の機構を使って変更できます。Example アプリソース https://github.com/synapsesoft/UIWebViewAuthentication/tree/master/Example などを参照してください。
"Authentication Required" = "認証が必要です";
"Cancel" = "キャンセル";
"Log In" = "ログイン";
本ライブラリは株式会社シナプスソフトの実プロジェクトのアプリで使用していますが、現実の様々なパターンのアプリに組込むテストは不十分だと思われます。使い方や挙動について質問ありましたらお気軽に https://github.com/synapsesoft/UIWebViewAuthentication/issues へ投稿ください。
Author And Source
この問題について(UIWebViewにBASIC認証サポート用のUIを追加する), 我々は、より多くの情報をここで見つけました https://qiita.com/kusatsugu/items/77c98fe884e0e3700c87著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .