2014-02-16 3 views
0

Привет, у меня есть небольшая проблема. Я пробовал все типы решений, которые я мог найти, минус устаревшие коды, на эту тему получить ссылку, чтобы открыть pop Safari и загрузить его там.Попытка открыть ссылку UIWebView с Safari

Пока я могу получить конкретный размер для загрузки в симуляторе, но каждый раз, когда я нажимаю на него, он загружается прямо там. Я должен пропустить важный шаг или у меня есть AppDelegate .h .m и ViewController .h .m полностью перепутались.

Я был большим в кодировании для устройств до третьего поколения iPod/iPhone. Я знаю, что Xcode любит много обновлять, и у меня версия 5.0.2. В основном я снова No0b, так как в течение некоторого времени я был вне игры.

Пожалуйста, дайте мне знать, если у вас есть какие-либо советы. Кроме того, чтобы отказаться от этого. лол. Я знаю, что это можно сделать. Вот что у меня есть ...

#import "WIAppDelegate.h" 

@implementation WIAppDelegate 

- (BOOL)webview:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request 
    navigationType:(UIWebViewNavigationType)navigationType { 
    // This practically disables web navigation from the webView. 
    if (navigationType == UIWebViewNavigationTypeLinkClicked) { 
     [[UIApplication sharedApplication] openURL:[request URL]]; 
     return FALSE; 
    } 
    return TRUE; 
} 


#import <UIKit/UIKit.h> 

@interface WIViewController : UIViewController 
@property (strong, nonatomic) IBOutlet UIWebView *webview; 

@end 

#import "WIViewController.h" 

@interface WIViewController() 

@end 

@implementation WIViewController 


- (void)viewDidLoad { 
    [super viewDidLoad]; 
    NSString *fullURL = @"http://THESITE.com"; 
    NSURL *url = [NSURL URLWithString:fullURL]; 
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 
    [_webview loadRequest:requestObj]; 
} 

@end 

ответ

0

Вы должны реализовать webview:shouldStartLoadWithRequest:navigationType: метод на класс, который действует как UIWebViewDelegate

Это, скорее всего, должны жить в вашем WIViewController классе

@implementation WIViewController 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    NSString *fullURL = @"http://THESITE.com"; 
    NSURL *url = [NSURL URLWithString:fullURL]; 
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 
    [_webview loadRequest:requestObj]; 
    _webview.delegate = self; 
} 

- (BOOL)webview:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
    if (UIWebViewNavigationTypeLinkClicked == navigationType) { 
    [[UIApplication sharedApplication] openURL:[request URL]]; 
    return NO; 
    } 
    return YES; 
} 

@end 

Вам также необходимо убедиться, что вы фактически используете t этот класс как UIWebViewDelegate. Я использую это как последнюю строку viewDidLoad, но вы можете подключить это в xib, если хотите.

Смежные вопросы