2013-10-15 4 views
0

После просмотра многочисленных сообщений о переполнении стека мне не удалось найти решение моей проблемы. Если я задаю вопрос, на который уже был дан ответ в другом месте, любезно дайте мне кивнуть в правильном направлении.Xcode/iOS6/UIWebView URL/HTML-ссылки не работают

И, пожалуйста, не будьте слишком суровы на меня, если я могу использовать неправильную терминологию, поскольку я по-прежнему новичок в мобильной разработке.

Проблема: Все, что я пытаюсь сделать, - это щелкнуть ссылку на локальной веб-странице, которая затягивается в UIWebView. В настоящее время ничего не происходит, когда я нажимаю ссылку, кроме краткой вспышки текущей страницы.

Это где я нахожусь:

1) При загрузке приложения, я покажу веб-просмотр, который отображает «локальную» веб-страницу (это часть моей Xcode проекта). Все идет нормально.

2) Когда конечный пользователь нажимает на элемент (географические регионы в моем случае, представленные флагом), появляется дополнительный контент, в том числе несколько ссылок, приводящих к «внешним» веб-сайтам, таким как википедия и веб-сайт карты.

3) Большая часть моего маленького веб-приложения находится на веб-странице, которую я показываю, когда приложение загрузилось. Я использую JavaScript, HTML и CSS для обеспечения большей части функциональности (поскольку у меня уже есть веб-сайт, который делает именно то, что он должен делать).

4) Тем не менее, иметь возможность связываться с другими веб-сайтами с моей начальной страницы имеет решающее значение.

(Если вы считаете, что это плохой дизайн, я согласен с этим. Предложения по лучшим подходам всегда приветствуются, ОДНАКО, мне нужно решить мою текущую проблему, прежде чем я смогу перестроить свой код. Пожалуйста, несите меня.)

Вот код, который вызывает исходную веб-страницу:

// View Controller.h 
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 

#import <UIKit/UIKit.h> 
@interface ViewController : UIViewController 
@property (strong, nonatomic) IBOutlet UIWebView *spfWebView; 
@end 

// ViewController.m 
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 

#import "ViewController.h" 

@interface ViewController() 
@end 

@implementation ViewController 
@synthesize spfWebView; 

- (void)viewDidLoad{ 

    [super viewDidLoad]; 

    //Web Site within XCode Project: 
    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"www/index" ofType:@"html"] isDirectory:NO]; 

    //NSURL *url = [NSURL URLWithString:urlString]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
    NSOperationQueue *queue = [[NSOperationQueue alloc] init]; 
    [NSURLConnection sendAsynchronousRequest:request queue:queue 
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { 
        if ([data length] > 0 && error == nil){ 
         [spfWebView loadRequest:request]; 
        }else if (error != nil){ 
         NSLog(@"Error: %@", error); 
        } 
    }]; 

} 

- (void)didReceiveMemoryWarning{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{ 
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); 
} 

@end 

так в моей веб-странице, я использую стандартные, обычные A HREF ссылки, чтобы указать на википедии, например, вот так (у меня было использовать пробелы в части href, чтобы избежать того, чтобы SO интерпретировал ее как ссылку, так как я только хотел показать вам код для ссылки):

<a href ="http://en.wikipedia.org/wiki/Schaffhausen">Wikipedia</a> 

И, как я уже упоминал, страница просто сидит там, когда я нажимаю или нажимаю ссылку. Кажется, что страница кратковременно перезагружается и мигает на экране, но это все, что я вижу.

Любые идеи кто-нибудь?

ответ

1

После дополнительного поиска и, наконец, найти действительно полезную информацию здесь, на SO и пару внешних ссылок, Теперь я вижу, насколько наивен мой первоначальный вопрос. Оказывается, это нечто большее, чем кажется на первый взгляд.

Я хотел бы быстро исправить проблему, которая требует немного больше работы, чем я понял.

Самые важные вещи, которые я узнал, являются:

(1) UIWebView не обязательно такой же, как веб-браузер.

(2) В UIWebView вы можете отображать веб-контент, да, но вам нужно адресовать клики по страницам отдельно, в XCode.

(3) Если вы планируете запустить свое веб-приложение на HTML5, CSS3 и JavaScript внутри UIWebView, вы можете многое сделать, но вам, возможно, придется узнать о том, как сделать UIWebView делегатом самому себе, открыв дополнительные виды и т. д.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~

уроки я узнал, приходят в основном из следующих источников:

Clicking a link in UIWebView pushes onto the NavigationView stack

iPhone UIWebView - Open new UIWebView Controller from a hyperlink

UIWebView Link Click

Calling methods from links in a UIWebView

Open a link in a UIWebView

Open iOS6 Apple Maps app from a link in a UIWebView

~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Так что прямо сейчас, я реорганизую свое приложение для мобильного телефона, но , если у кого-то есть дополнительные сведения, чтобы заставить ссылки UIWebView работать (в простой и обновленной форме), добавьте свои комментарии и Я попытаюсь реализовать их в этом посте.

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