「iOS用認証プラグイン」は、iOSネイティブアプリでAPIを使用する際に必要な認証機能を提供するFrameworkです。当プラグインを使用することによってiOS端末ローカル上にあるhtmlファイルからAPIを使用することが可能になります。
※)有料版ユーザのみご利用いただけます
※)認証にはコンシューマ・キー、コンシューマ・シークレットが必要です。詳細は担当営業までお問い合わせ下さい
※)別途、Frameworkをプロジェクトに追加する必要があります。こちらからzipファイルを取得して解凍して下さい
※)htmlの文字コードは UTF-8を使用して下さい
※)"Build Settings"の"Other Linker Flags"に-ObjCを指定して下さい
※)動作確認済みのOSはiOS 5 ~ 8です。
上記以外のバージョンは動作未確認あるいは動作しない事が確認されております。
また、WKWebView には対応しておりません。
※)apiドキュメントは以下のリンクをクリックすると別ページで開きます
APIを利用して地図を表示するには、 ItsmoNaviOauthClientクラスのprepareWebViewInfoメソッドで画面情報を設定した後、loadJsメソッドを実行します。
#import "ZDCViewController.h" #import <ItsmoNaviOauthClient/ItsmoNaviOauthClient.h> @interface ZDCViewController () @property (weak, nonatomic) IBOutlet UIWebView *topWebView; @end @implementation ZDCViewController { ItsmoNaviOauthClient* client; } // OAuth認証で使用するコンシューマ・キー NSString *CONSUMER_KEY = @"*********************"; // OAuth認証で使用するコンシューマ・シークレット NSString *CONSUMER_SECRET = @"***************************"; - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; // コンシューマ・キー、コンシューマ・シークレット、環境情報を元にItsmoNaviOauthClientのインスタンスを生成する client = [[ItsmoNaviOauthClient alloc] initWithOauthInfo:CONSUMER_KEY secret:CONSUMER_SECRET env:ENV_TEST]; [client prepareWebViewInfo:self.topWebView /* 地図を表示するWebView */ file:@"index" /* 表示させたいhtmlファイル */ dir:@"www" /* htmlが配置されているディレクトリ */ /* ローダのパラメータ。エラー時、JavaScriptのアラート表示させるためalert=1を指定 */ param:@"?ver=2.0&alert=1&api=zdcmap.js,control.js,shape.js,search.js"]; // apiをロードする [client loadJs:^{ // apiロード成功時の処理 [self displayAlert:@"loaded!"]; } failure:^(NSError *error) { NSLog(@"Error : %@", error); NSString *errorMsg = @""; NSInteger errorCode = [error code]; if (errorCode == 1001) { errorMsg = @"ファイル読み取り時にエラーが発生しました。"; } else if (errorCode == 1002) { errorMsg = @"通信エラーが発生しました。"; } else if (errorCode == 1003) { errorMsg = @"環境エラーが発生しました。"; } else { errorMsg = @"予期せぬエラーが発生しました。"; } // apiロード失敗時はエラーメッセージを表示する [self displayAlert:errorMsg]; }]; } - (void)displayAlert:(NSString*)text { Class class = NSClassFromString(@"UIAlertController"); if (class) { UIAlertController *alert = nil; alert = [UIAlertController alertControllerWithTitle:@"" message:text preferredStyle:UIAlertControllerStyleAlert]; [alert addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]]; [self presentViewController:alert animated:YES completion:nil]; } else { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"" message:text delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil]; [alert show]; } } @end