[iOS]如何省略协议?

时间:2017-10-30 07:54:00

标签: ios objective-c xcode uiwebview protocols

我是iOS的新手

我正在尝试使用UIWebView创建一个简单的浏览器。

这是我的代码。

“ViewController.h”

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@property (strong, nonatomic) IBOutlet UIWebView *webView;
@property (weak, nonatomic) IBOutlet UITextField *addrInputField;

-(IBAction)enterButton:(id)sender;

/*go back btn*/
-(IBAction)goBackBtn:(id)sender;

/*go front btn*/
-(IBAction)goForwardBtn:(id)sender;

@end

“ViewController.m”

/*url enter button*/
-(IBAction)enterButton:(id)sender{

    NSString *str = [_addrInputField text];
    NSURLRequest *rqst = [NSURLRequest requestWithURL:[NSURL URLWithString:str]];
    [_webView loadRequest:rqst];
}
/*go back button*/
-(IBAction)goBackBtn:(id)sender{
    if([self.webView canGoBack]){
        [self.webView goBack];
    }
}
/*go forward button*/
-(IBAction)goForwardBtn:(id)sender{
    if([self.webView canGoForward]){
        [self.webView goForward];
    }

}

这些简单的事情都是我的代码。

在文本字段中输入网址,然后触摸enterButton,然后更改webView。

当我在textField中输入url时,如:“http://apple.com”,则视图已更改。

但输入网址:“apple.com”,视图无效。

输入网址时如何省略协议?

p.s我想知道如何处理http和https。

感谢阅读。

******添加详细信息。

input url in chrome before press ENTER Button

当我按下Enter ..

After Enter Button Pressed

Chrome将我的输入“apple.com”修改为“https://apple.com”,自动添加协议“https://”。

我想在我的应用中添加此功能。感谢。

1 个答案:

答案 0 :(得分:1)

从文本字段中获取字符串后,在创建NSURL后,您可以从中检索URLScheme。如果是nil,您可以自己添加http

NSURL *url = [NSURL URLWithString:str];
if url.scheme == nil {
   [NSString stringWithFormat:@"http://%@",str];
   url = [NSURL URLWithString:str];
}