2013-05-05 2 views
0

Чтобы подвести итог, у меня есть браузер в моем приложении, и я хочу, чтобы он запускал только 5 веб-сайтов, ничего больше. Есть ли способ заставить мой браузер просто запустить 5 веб-сайтов, установив таможенные строки, например, если {пользователь вводит эту строку в}, перейдите к этому, а затем еще {не загружайте}Попытка разрешить только определенные строки в строке URL

Вот код, который я имею для URL части

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
// Do any additional setup after loading the view from its nib. 

// go to google.com 
NSURL *urlRequest = [NSURL URLWithString:@"http://www.google.com"]; 
NSURLRequest *request = [NSURLRequest requestWithURL:urlRequest]; 

// set text bar 
urlbar.text = [urlRequest absoluteString]; 

// load request 
[webView loadRequest:request]; 

// show loading icon 
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES]; 
} 

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

Вот дополнительный код, который я имел

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil: (UINavigationController *)navigationController: (Controller *)transmission 
{ 
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
if (self) { 
    // Custom initialization 
    self.controller = navigationController; 
    self.libtransmission = transmission; 
} 
return self; 
} 

- (IBAction)go:(id)sender 
{ 
// create url request 
NSURL *urlRequest = [NSURL URLWithString:urlbar.text]; 
NSURLRequest *request = [NSURLRequest requestWithURL:urlRequest]; 

// load request 
[webView loadRequest:request]; 

// make network icon visible 
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES]; 
} 
- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
// update urlbar 
urlbar.text = webView.request.URL.absoluteString; 

// make the loading icon disappear 
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO]; 
} 

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
[textField resignFirstResponder]; 
return YES; 
} 

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

ответ

1

Помещенные сайты, которые могут быть доступны в массив, а затем пройти через этот массив, чтобы увидеть, если строка набранной в этом массиве, как это

NSArray *sites = @[@"http://test.com", @"http://test1.com", @"http://test2.com", @"http://test3.com", @"http://test4.com"]; 
NSString *urlToOpen = URLTextField.text; 
for (NSString *str in sites){ 
    if ([urlToOpen isEqualToString:str]){ 
     NSURL *urlRequest = [NSURL URLWithString:urlToOpen]; 
     NSURLRequest *request = [NSURLRequest requestWithURL:urlRequest]; 
     urlbar.text = [urlRequest absoluteString]; 
     [webView loadRequest:request]; 

    } 
    else{ 
     //url user entered is not one of the 5 urls 
    } 
} 
+0

Большое спасибо за ответ. Это имеет для меня большой смысл, никогда не думал об этом, но я столкнулся с одной проблемой при подключении к Xcode. Когда я это сделал, он получил сообщение об ошибке для URLTextField.text, заявив, что это неиспользуемое свойство. Я предполагаю, что я должен объявить свойство в файлах h и m, но с файлом M, что мне нужно объявить под свойством? Это может быть даже не проблема, но любые мысли? – ctyler9

+0

Ну, в моем ответе, 'URLTextField' является всего лишь примером того, что вызывает текстовое поле, в которое вы попадаете люди. Замените его тем, что вызывает текстовое поле. –

+0

Alright urlbar.text - единственное, что до сих пор успокаивало предупреждение, но, похоже, оно работает независимо от того, когда я бегу. Есть ли что-нибудь еще, что вы могли бы предложить (я отправил больше кода выше), я сейчас обманутый и, вероятно, передумал это. – ctyler9

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