快递查询物流

以下为主要代码

#import@interface FirstViewController : UIViewController

{

UIButton *yunda;

UIButton *ems;

UIButton *yuantong;

UIButton *shentong;

UIButton *more;

UIButton *shunfeng;

UIButton *tiantian;

}

- (void)select;

@end

#import "FirstViewController.h"

#import "SecondViewController.h"

#import "OtherViewController.h"

@interface FirstViewController ()

@end

@implementation FirstViewController

-(void)loadView{

[super loadView];

UIColor *testColor= [UIColor colorWithRed:150/255.0 green:200/255.0 blue:255/255.0 alpha:1];

self.view.backgroundColor = testColor;

[self select];

}

- (void)select{

yunda = [[UIButton alloc]initWithFrame:CGRectMake(30, 100, 140, 50)];

//    yunda=[UIButton buttonWithType:UIButtonTypeCustom];

[yunda setBackgroundImage:[UIImage imageNamed:@"yunda"] forState:UIControlStateNormal];

[yunda setTag:1];

[yunda addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:yunda];

ems = [[UIButton alloc]initWithFrame:CGRectMake(205, 100, 140, 50)];

[ems setBackgroundImage:[UIImage imageNamed:@"EMS"] forState:UIControlStateNormal];

[ems setTag:2];

[ems addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:ems];

//圆通

yuantong = [[UIButton alloc]initWithFrame:CGRectMake(30, 195, 140, 50)];

[yuantong setBackgroundImage:[UIImage imageNamed:@"yuantong"] forState:UIControlStateNormal];

[yuantong setTag:3];

[yuantong addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:yuantong];

//申通

shentong = [[UIButton alloc]initWithFrame:CGRectMake(205, 195, 140, 50)];

[shentong setBackgroundImage:[UIImage imageNamed:@"shentong"] forState:UIControlStateNormal];

[shentong setTag:4];

[shentong addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:shentong];

//顺丰

shunfeng = [[UIButton alloc]initWithFrame:CGRectMake(30, 280, 140, 50)];

[shunfeng setBackgroundImage:[UIImage imageNamed:@"shunfeng"] forState:UIControlStateNormal];

[shunfeng setTag:5];

[shunfeng addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:shunfeng];

//天天

tiantian = [[UIButton alloc]initWithFrame:CGRectMake(205, 280, 140, 50)];

[tiantian setBackgroundImage:[UIImage imageNamed:@"tiantian"] forState:UIControlStateNormal];

[tiantian setTag:6];

[tiantian addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:tiantian];

more = [[UIButton alloc]initWithFrame:CGRectMake(35, 380, 300, 60)];

[more setBackgroundColor:[UIColor greenColor]];

[more setTitle:@"更多快递..." forState:UIControlStateNormal];

[more setTag:7];

[more addTarget:self action:@selector(clickTwo:) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:more];

}

- (void)click:(UIButton *)buton{

SecondViewController *viewScend = [[SecondViewController alloc] init];

viewScend.title = @"查询";

switch ([buton tag]) {

case 1:

[viewScend companyName:@"yunda" withChinese:@"韵达快递"];

break;

case 2:

[viewScend companyName:@"ems" withChinese:@"EMS"];

break;

case 3:

[viewScend companyName:@"yuantong" withChinese:@"圆通快递"];

break;

case 4:

[viewScend companyName:@"shentong" withChinese:@"申通快递"];

break;

case 5:

[viewScend companyName:@"shunfeng" withChinese:@"顺丰快递"];

break;

case 6:

[viewScend companyName:@"tiantian" withChinese:@"天天快递"];

break;

}

[self.navigationController pushViewController:viewScend animated:YES];

}

- (void)clickTwo:(UIButton *)button{

OtherViewController *viewOfOther = [[OtherViewController alloc]init];

viewOfOther.title = @"其他快递";

[self.navigationController pushViewController:viewOfOther animated:YES];

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

/*

#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

// Get the new view controller using [segue destinationViewController].

// Pass the selected object to the new view controller.

}

*/

@end

#import@interface SecondViewController : UIViewController

{

UITextField *setNumber;

UITextField *setName;

}

@property NSString *companyName;

- (void)companyName:(NSString *)name withChinese:(NSString *)chinese;

@end

#import "SecondViewController.h"

#import "ThirdViewController.h"

@interface SecondViewController ()

@end

@implementation SecondViewController

- (void)viewDidLoad {

[super viewDidLoad];

}

- (void)companyName:(NSString *)name withChinese:(NSString *)chinese{

NSLog(@"%@,%@",name,chinese);

self.companyName = name;

[self viewOfInput:name addChinese:chinese];

}

- (void)viewOfInput:(NSString *)comName addChinese:cName{

UILabel *name=[[UILabel alloc]initWithFrame:CGRectMake(20, 150, 60, 50)];

[name setTextColor:[UIColor blackColor]];

[name setBackgroundColor:[UIColor clearColor]];

[name setText:@"公司名"];

UILabel *number=[[UILabel alloc]initWithFrame:CGRectMake(20, 200, 60, 50)];

[number setTextColor:[UIColor blackColor]];

[number setBackgroundColor:[UIColor clearColor]];

[number setText:@"运单号"];

[self.view addSubview:name];

[self.view addSubview:number];

setName=[[UITextField alloc]initWithFrame:CGRectMake(80, 160,200, 30)];

[setName setBackgroundColor:[UIColor whiteColor]];

[setName setPlaceholder:@"输入快递名 如:yunda"];

[setName setText:cName];

[setName setTextColor:[UIColor grayColor]];

[setName setBorderStyle:UITextBorderStyleRoundedRect];

[setName setFont:[UIFont systemFontOfSize:18]];

[setName resignFirstResponder];

setName.delegate =(id)self;

setNumber=[[UITextField alloc]initWithFrame:CGRectMake(80,210, 200, 30)];

[setNumber setBackgroundColor:[UIColor whiteColor]];

[setNumber setPlaceholder:@"输入运单号"];

[setNumber setBorderStyle:UITextBorderStyleRoundedRect];

[setNumber setReturnKeyType:UIReturnKeyDone];

[setNumber setTextColor:[UIColor greenColor]];

[setNumber setFont:[UIFont systemFontOfSize:18]];

setNumber.delegate =(id)self;

[self.view addSubview:setNumber];

[self.view addSubview:setName];

UIColor *testColor= [UIColor colorWithRed:150/255.0 green:200/255.0 blue:255/255.0 alpha:1];

//查询按钮

UIButton *buttonOne = [UIButton buttonWithType:UIButtonTypeRoundedRect];

buttonOne.frame=CGRectMake(90, 260, 150, 50);

[buttonOne setBackgroundColor:testColor];

[buttonOne setTitle:@"查询" forState:UIControlStateNormal];

buttonOne.titleLabel.font = [UIFont systemFontOfSize:20];

[buttonOne setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

[buttonOne addTarget:self action:@selector(clic:) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:buttonOne];

}

-(void)resume{

[self.view setFrame:CGRectMake(0, 0, 320, 480)];

}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

[setName resignFirstResponder];

[setNumber resignFirstResponder];

}

#pragma mark texfiledDelegte

- (void)textFieldDidBeginEditing:(UITextField *)textField{

if (textField == setNumber) {

[self.view setFrame:CGRectMake(0, -40, 320, 480)];

}

}

- (BOOL)textFieldShouldReturn:(UITextField *)textField{

[textField resignFirstResponder];

[self resume];

return YES;

}

- (void)textFieldDidEndEditing:(UITextField *)textField{

[textField resignFirstResponder];

[self resume];

}

-(void)clic:(UIButton *)button{

ThirdViewController *viewThird = [[ThirdViewController alloc] init];

viewThird .view.backgroundColor=[UIColor greenColor];

[viewThird flashDataWithName:self.companyName withNumber:[setNumber text]];

viewThird.title = @"查询结果";

[self.navigationController pushViewController:viewThird animated:YES];

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

/*

#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

// Get the new view controller using [segue destinationViewController].

// Pass the selected object to the new view controller.

}

*/

@end

#import@interface ThirdViewController : UIViewController

@property(nonatomic)NSMutableData *receiveData;

@property(nonatomic)NSURLRequest *request;

@property(nonatomic)UIColor *testColor;

@property(nonatomic)UILabel *lableWrong;

- (void)flashDataWithName:(NSString *)strName withNumber:(NSString *)strNum;

- (void)showInView:(NSArray *)dic;

@end

#import "ThirdViewController.h"

@interface ThirdViewController ()

@property NSMutableDictionary *array;

@end

@implementation ThirdViewController

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view.

}

- (void)flashDataWithName:(NSString *)strName withNumber:(NSString *)strNum{

NSString *urlName = [[NSString alloc]init];

NSString *urltext = [[NSString alloc]init];

NSString *urlNum = [[NSString alloc]init];

NSLog(@"urlNum=%@",urlNum);

if(!(strName == urltext)){

urlName = [NSString stringWithFormat:@"?company=%@",strName];

}

if(!(strNum == urltext)){

urlNum = [NSString stringWithFormat:@"&id=%@",strNum];

}

NSString *strUrl = [NSString stringWithFormat:@"http://www.kuaidi100.com/query?type=%@&postid=%@",strName,strNum];

NSURL *urlOne = [NSURL URLWithString:strUrl];

self.request=[NSURLRequest requestWithURL:urlOne];

NSData*data=[NSData dataWithContentsOfURL:urlOne];

NSDictionary *Dict=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];

NSLog(@"%@",Dict);

NSURLSession *session=[NSURLSession sharedSession];

NSURLSessionDataTask *dataTask=[session dataTaskWithRequest:self.request

completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

_array=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];

if (error) {

NSLog(@"error:%@",error.description);

}

else

{

}

}];

[dataTask resume];

[self showInView:Dict[@"data"]];

}

#pragma mark - NSURLConnectionDataDelegate

//收到服务器回应的时候调用此方法

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{

_receiveData=[NSMutableData alloc];

}

//接收到服务器传输数据的时候调用,此方法根据数据大小执行若干次

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{

[_receiveData appendData:data];

}

//请求完之后调用

- (void)connectionDidFinishLoading:(NSURLConnection *)connection{

UIColor *testColor= [UIColor colorWithRed:150/255.0 green:200/255.0 blue:255/255.0 alpha:1];

_lableWrong = [[UILabel alloc]initWithFrame:CGRectMake(50, 150, 220, 100)];

[_lableWrong setTextAlignment:NSTextAlignmentCenter];

_lableWrong.backgroundColor = testColor;

_lableWrong.numberOfLines = 0;

NSLog(@"connectionDidFinishLoading");

NSString *infoString = [[NSString alloc]initWithData:_receiveData encoding:NSUTF8StringEncoding];

NSLog(@"返回的json数据为:%@",infoString);

//返回信息处理

if ([infoString isEqualToString:@"null"]) {

NSLog(@"查询成功但运单过期或没有物流信息");

_lableWrong.text = @"查询成功但运单过期或没有物流信息";

[self.view addSubview:_lableWrong];

}

else if([infoString isEqualToString:@"Param_Error"]){

NSLog(@"缺少参数");

_lableWrong.text = @"缺少参数";

[self.view addSubview:_lableWrong];

}

else if([infoString isEqualToString:@"Illegal_ID"]){

NSLog(@"运单号或快递公司编码无效");

_lableWrong.text = @"运单号或快递公司编码无效";

[self.view addSubview:_lableWrong];

}

else if([infoString isEqualToString:@"Server_Error"]){

NSLog(@"服务器错误");

_lableWrong.text = @"运单号或快递公司编码无效";

[self.view addSubview:_lableWrong];

}

else{

NSLog(@"成功");

NSArray *array = [NSJSONSerialization JSONObjectWithData:_receiveData options: NSJSONReadingAllowFragments  error:nil];

[self showInView:array];

}

}

- (void)showInView:(NSArray *)array{

int i=0;

for(NSDictionary *dic in array){

//lable显示时间

UILabel *showTime = [[UILabel alloc]initWithFrame:CGRectMake(10, 65+i*30, 30, 15)];

showTime.font = [UIFont systemFontOfSize:10];

[showTime setTextColor:[UIColor redColor]];

[showTime setText:@"时间:"];

[self.view addSubview:showTime];

//lable显示状态

UILabel *showDetail = [[UILabel alloc]initWithFrame:CGRectMake(10, 80+i*30, 30, 15)];

showDetail.font = [UIFont systemFontOfSize:10];

[showDetail setTextColor:[UIColor greenColor]];

[showDetail setText:@"状态:"];

[self.view addSubview:showDetail];

//label显示具体时间

showTime = [[UILabel alloc]initWithFrame:CGRectMake(40, 65+i*30, 280, 15)];

showTime.font = [UIFont systemFontOfSize:10];

[showTime setBackgroundColor:[UIColor redColor]];

[showTime setText:[dic objectForKey:@"Time"]];

[self.view addSubview:showTime];

//lable显示具体状态

showDetail = [[UILabel alloc]initWithFrame:CGRectMake(40, 80+i*30, 280, 15)];

showDetail.font = [UIFont systemFontOfSize:10];

[showDetail setBackgroundColor:[UIColor greenColor]];

[showDetail setText:[dic objectForKey:@"Detail"]];

[self.view addSubview:showDetail];

i++;

}

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

/*

#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

// Get the new view controller using [segue destinationViewController].

// Pass the selected object to the new view controller.

}

*/

@end

#import@interface OtherViewController : UIViewController

@end

#import "OtherViewController.h"

#import "SecondViewController.h"

@interface OtherViewController ()

@end

@implementation OtherViewController

- (void)viewDidLoad {

[super viewDidLoad];

UIColor *testColor= [UIColor colorWithRed:150/255.0 green:200/255.0 blue:255/255.0 alpha:1];

UILabel *A = [[UILabel alloc]initWithFrame:CGRectMake(20, 80, 10, 20)];

[A setText:@"A"];

[A setFont:[UIFont systemFontOfSize:10]];

[A setBackgroundColor:[UIColor greenColor]];

[self.view addSubview:A];

UIButton *anxinda = [[UIButton alloc]initWithFrame:CGRectMake(40, 80, 70, 20)];

[anxinda setTitle:@"安信达快递" forState:UIControlStateNormal];

anxinda.titleLabel.font = [UIFont systemFontOfSize:10];

[anxinda setBackgroundColor:testColor];

[anxinda addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

[anxinda setTag:1];

[self.view addSubview:anxinda];

UIButton *anjie = [[UIButton alloc]initWithFrame:CGRectMake(120, 80, 70, 20)];

[anjie setTitle:@"安捷快递" forState:UIControlStateNormal];

anjie.titleLabel.font = [UIFont systemFontOfSize:10];

[anjie setBackgroundColor:testColor];

[anjie addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

[anjie setTag:2];

[self.view addSubview:anjie];

UILabel *B = [[UILabel alloc]initWithFrame:CGRectMake(20, 110, 10, 20)];

[B setText:@"B"];

[B setFont:[UIFont systemFontOfSize:10]];

[B setBackgroundColor:[UIColor greenColor]];

[self.view addSubview:B];

UIButton *biaoji = [[UIButton alloc]initWithFrame:CGRectMake(40, 110, 70, 20)];

[biaoji setTitle:@"彪记快递" forState:UIControlStateNormal];

biaoji.titleLabel.font = [UIFont systemFontOfSize:10];

[biaoji setBackgroundColor:testColor];

[biaoji addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

[biaoji setTag:3];

[self.view addSubview:biaoji];

UIButton *bnt = [[UIButton alloc]initWithFrame:CGRectMake(120, 110, 70, 20)];

[bnt setTitle:@"BNT" forState:UIControlStateNormal];

bnt.titleLabel.font = [UIFont systemFontOfSize:10];

[bnt setBackgroundColor:testColor];

[bnt addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

[bnt setTag:4];

[self.view addSubview:bnt];

UILabel *C  = [[UILabel alloc]initWithFrame:CGRectMake(20, 140,10, 20)];

[C  setText:@"C"];

[C setFont:[UIFont systemFontOfSize:10]];

[C setBackgroundColor:[UIColor greenColor]];

[self.view addSubview:C];

UIButton *coe = [[UIButton alloc]initWithFrame:CGRectMake(40, 140, 70, 20)];

[coe setTitle:@"COE" forState:UIControlStateNormal];

coe.titleLabel.font = [UIFont systemFontOfSize:10];

[coe setBackgroundColor:testColor];

[coe addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

[coe setTag:5];

[self.view addSubview:coe];

UIButton *changyu = [[UIButton alloc]initWithFrame:CGRectMake(120, 140, 70, 20)];

[changyu setTitle:@"长宇快递" forState:UIControlStateNormal];

changyu.titleLabel.font = [UIFont systemFontOfSize:10];

[changyu setBackgroundColor:testColor];

[changyu addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

[changyu setTag:6];

[self.view addSubview:changyu];

UILabel *Y  = [[UILabel alloc]initWithFrame:CGRectMake(20, 170, 10, 20)];

[Y  setText:@"Y"];

[Y setFont:[UIFont systemFontOfSize:10]];

[Y setBackgroundColor:[UIColor greenColor]];

[self.view addSubview:Y];

UIButton *yafeng = [[UIButton alloc]initWithFrame:CGRectMake(40, 170, 50, 20)];

[yafeng setTitle:@"亚风快递" forState:UIControlStateNormal];

yafeng.titleLabel.font = [UIFont systemFontOfSize:10];

[yafeng setBackgroundColor:testColor];

[yafeng addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

[yafeng setTag:7];

[self.view addSubview:yafeng];

UIButton *yousu = [[UIButton alloc]initWithFrame:CGRectMake(110, 170, 50, 20)];

[yousu setTitle:@"优速快递" forState:UIControlStateNormal];

yousu.titleLabel.font = [UIFont systemFontOfSize:10];

[yousu setBackgroundColor:testColor];

[yousu addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

[yousu setTag:8];

[self.view addSubview:yousu];

UIButton *other = [[UIButton alloc]initWithFrame:CGRectMake(30, 380, 300, 60)];

[other setTitle:@"其他快递" forState:UIControlStateNormal];

[other setBackgroundColor:testColor];

[other addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

[other setTag:100];

[self.view addSubview:other];

}

- (void)click:(UIButton *)button

{

SecondViewController *viewScend = [[SecondViewController alloc] init];

viewScend.title = @"查询";

switch ([button tag]) {

case 1:

[viewScend companyName:@"anxinda" withChinese:@"安信达快递"];

break;

case 2:

[viewScend companyName:@"anjie" withChinese:@"安捷快递"];

break;

case 3:

[viewScend companyName:@"biaoji" withChinese:@"彪记快递"];

break;

case 4:

[viewScend companyName:@"bnt" withChinese:@"BNT"];

break;

case 5:

[viewScend companyName:@"coe" withChinese:@"COE"];

break;

case 6:

[viewScend companyName:@"changyu" withChinese:@"长宇快递"];

break;

case 7:

[viewScend companyName:@"yafeng" withChinese:@"亚风快递"];

break;

case 8:

[viewScend companyName:@"yousu" withChinese:@"优速快递"];

break;

case 100:

[viewScend companyName:@"" withChinese:@""];

break;

}

[self.navigationController pushViewController:viewScend animated:YES];

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

/*

#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

// Get the new view controller using [segue destinationViewController].

// Pass the selected object to the new view controller.

}

*/

@end

你可能感兴趣的:(快递查询物流)