_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
HTTPアクセス不可(Xcode7のみ)
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
下記のような警告が出力された場合、
App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
推奨されていないということですが、App Transport Security(ATS) でこの制限を全体的に許可してあげることで、
アクセスできるようにはなるようです。Info.plistに「NSAppTransportSecurity」をDictionaryで作成し、
「NSAllowsArbitraryLoads」をBoolean型としてtrue(YES)にします。
Xcode 6の既存のプロジェクトをXcode 7にしてこのようなエラーが発生した場合は、とりあえずこの方法で対処すると動くようになるかもしれません。
参考URL(http://mushikago.com/i/?p=6150)
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
エクセルファイル表示
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
// ズーム有効化
_webView.scalesPageToFit = YES;
NSURL *url = [[NSBundle mainBundle] URLForResource:@"excelFileName"
withExtension:@"xls"];
NSURLRequest *req = [NSURLRequest requestWithURL:url];
[self.webView loadRequest:req];
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
注意点
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
// UIWebViewオブジェクトはリリース前にdelegateにnilを設定しておくこと
- (void)dealloc
{
if (_webView) {
if (_webView.loading) {
[_webView stopLoading];
}
_webView.delegate = nil;
[_webView removeFromSuperview];
_webView = nil;
}
}
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
デリゲート
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
// コンテンツの読み込みが開始する直前に呼ばれる
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType
ここでYESを返すとコンテンツの読み込みをUIWebViewに任せる
NOを返すとUIWebViewは読み込み処理をしない
リンククリック時に独自の処理をしたい場合にはNOを返して、ここで実行する
// コンテンツの読み込みが開始した直後
- (void)webViewDidStartLoad:(UIWebView *)webView
// 呼ばれるタイミング:コンテンツの読み込みが完了した直後
- (void)webViewDidFinishLoad:(UIWebView *)webView
// コンテンツの読み込み中にエラーが発生したタイミングで呼ばれる(複数回呼ばれることがある)
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
if ([error code] != NSURLErrorCancelled) {
NSString *message = [error localizedDescription];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"エラー発生"
message:message
delegate:self
cancelButtonTitle:nil
otherButtonTitles:@"OK", nil];
[alert show];
}
}
最終更新:2016年03月31日 14:13