2012-02-27 7 views
1

誰かが答えることができれば幻想的な簡単な質問。UIWebViewを各アプリケーションの起動時に新しいようにする

私は単純なUIWebViewを使って特定のサービスにログインしています。しかし、私がアプリケーションをリロードすると、ログインしたままになります。私ができる必要があるのは、アプリケーションが起動するたびに新しいUIWebViewを作成することです。インターフェイスビルダのどこかにオプションがあるかどうか、またはアプリが終了したときに呼び出されるメソッドに置くことができる何らかのメソッドがあるかどうかわからないので、WebViewなどがリリースされます。

答えて

4

あなたが行う必要があるのは、UIwebViewのキャッシュを保存しないことです。

NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil]; 
[NSURLCache setSharedURLCache:sharedCache]; 

コードをUIwebviewコードに配置します。あなたがキャッシュを削除することができます

それともApplicationDidFinishLoad中(またはそのような何か、笑):

[[NSURLCache sharedURLCache] removeAllCachedResponses]; 

編集:

あなたはコメントで何かを求めてきました。 、

NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://www.google.com"]]; 

     UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0.f, 0.f, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height - 20.f)]; 
     [webView setAutoresizingMask:(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth)]; 

//No Cache\\ 

     NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil]; 
     [NSURLCache setSharedURLCache:sharedCache]; 

//No Cache\\ 

     webView.delegate = self; 
     [webView loadRequest:request]; 
     [self.view addSubview:webView]; 

[OK]を、

特定の要求

[[NSURLCache sharedURLCache] removeCachedResponseForRequest:NSURLRequest]; 

を削除するかのUIWebView

からアルクッキーを削除
for(NSHTTPCookie *cookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]) { 

    if([[cookie domain] isEqualToString:someNSStringUrlDomain]) { 

     [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie]; 
    } 
} 

幸運:あなたは以下のコードのような何かを行うことができます ネイサン

+0

私はちょうど1つの質問があります。あなたは「Webviewコードの場所」と言っていますが、具体的にはどこで話していますか? Ex。 viewDidLoad – JTApps

+0

@JTApps私はあなたの助けになると私のメッセージを編集しました。 – Nathan

+0

ありがとう= D – JTApps

1

私の答えは、複数の拠点をカバーするために複数の部分に分かれています。

1 - 。それはアプリが古いクッキーは、ログイン情報に残るので、あなたはまだクッキーを殺すために

に記録されます。新しいアプリを起動するときにも、ユーザーに対して設定されたCookieを持っていることは可能です、 (viewwillloadまたはその他の方法でIE)のUIWebViewがロードされる前にこれを試して

NSHTTPCookie *cookie; 
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 
for (cookie in [storage cookies]) { 
    [storage deleteCookie:cookie]; 
} 

2 - これは(3GS以降にiOS4を以降)マルチスレッドの携帯電話上ですか?バックグラウンドに行くのではなく、アプリが終了していると確信していますか?この場合、以前のアプリを起動しているだけで(ログインしていた場所)、 - (void)applicationDidBecomeActive:(UIApplication *)アプリケーションにフックして古いWebビューを削除し、新しいWebビューを追加する必要があります。

関連する問題