2013-05-05 109 views
0

总结一下,我在我的应用程序中有一个浏览器,我希望它只启动5个网站,没有别的。有没有一种方法可以让我的浏览器通过设置海关字符串来启动5个网站,如if {用户输入此字符串}去那个,然后其他{不加载}试图只允许某些字符串进入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 2013-05-06 01:32:51

+0

那么,在我的回答中,'URLTextField'就是你输入地址的文本字段被调用的一个例子。将其替换为调用任何文本字段。 – 2013-05-06 01:34:47

+0

好吧urlbar.text是迄今为止唯一能够安抚警告的东西,但是无论我什么时候运行,它似乎都不起作用。还有什么你可以建议的(我在上面发布了更多的代码),我现在非常沮丧,可能会过度思考这个问题。 – ctyler9 2013-05-06 02:26:13