2011-06-30 9 views
0

私は、マルチタスキングとサファリに行くのではなく、単純なWebビューでユーザーがクリックするリンクを開こうとしています。リンクをクリックするたびにユーザーがアプリを離れる必要があるのは非常に苦痛ですが、それはおそらくかなりシンプルですが、これを行うにはひどい時間があります。ここでは私が使用しているコードがありますが、リンクがクリックされるとまだサファリが開きます。UIWebviewでリンクを開くUISharedアプリケーションでない

誰かが正しい方向に向けるのを助けることができれば、私は大いに感謝しています!ありがとうございました!

 - (void) handleURL:(NSURL*)url 
    { 
    [web loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"%@"]]]; 
    } 


    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest 
*)request 
    navigationType:(UIWebViewNavigationType)navigationType { 
    NSLog(@"expected:%d, got:%d", UIWebViewNavigationTypeLinkClicked, navigationType); 
    if (navigationType == UIWebViewNavigationTypeLinkClicked) { 
    [UIApplication sharedApplication] ; 
    return NO; 
    } 
    if (navigationType == UIWebViewNavigationTypeLinkClicked) {  
    [web loadRequest:[NSURLRequest requestWithURL:[NSURL 
    URLWithString:replyTweetText.text]]];  
    return YES; 
    } 

    } 

答えて

0

私は、このビットが何をするかわからない:

if (navigationType == UIWebViewNavigationTypeLinkClicked) { 
    [UIApplication sharedApplication] ; 
    return NO; 
    } 

ライン[UIApplication sharedApplication];はシングルトンのアプリケーションのインスタンスを作成し、返します。あなたはそれで何もしていません。

また、ifの両方のステートメントは同一であるため、最初のステートメントのみがヒットし、メソッドはNOを返します。デフォルトの戻り値はありません。voidでない関数には悪い値です。代わりにこれを試してください:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { 
    return YES; 
} 
関連する問題