上班第一天,老大给我个任务:去了解微信公众平台并结合jsp开发。还是老大有远见,就已经开始触碰点对多点的模式了。跟着一个有创新力的老大感觉很好。在此已博客的形式记录该任务的完成进度。
微信公众平台(https://mp.weixin.qq.com/还有个微信开放平台,是推广手机app用的不要混淆了),简单理解下微信公众平台,该平台提供服务号和订阅号。实例见官网的成功案例。
服务号“给企业和组织提供更强大的业务服务与用户管理能力,帮助企业快速实现全新的公众号服务平台”。当用户成为服务号的粉丝后,可以通过微信获得信息查询、简单业务办理等服务。
订阅号“为媒体和个人提供一种新的信息传播方式,构建与读者之间更好的沟通与管理模式”。一点对多点的广播式通信。信息内容丰富多样,可以是图片、声音或者视频。
注册账号请参考官网的注册步骤,注意审核周期为7天,想要体验的朋友请提前注册。
注册并通过后在高级工具中会有编辑模式和开发模式,编辑模式能以图形化界面的形式实现自动回复、信息群发等功能。开发模式功能更强大比如当用户关注公众账号时自动回复一个多图文消息,每个图文消息可以对应一篇文章或者自己网站的某个网页,用户点击就可以查看。当然是面向开发者的所有有些复杂。
这里我主要使用开发模式
在.h文件中定义三个数组和一个tablview
UITableView *listTable;
NSMutableArray *listArray;
NSMutableArray *proviceArray;
NSMutableArray *statusArray;
//定义一个点击方法
-(void)ClickTheSection:(int)section;
在.m文件中使用
//先声明数组和tablview并给数组赋初值
- (void)viewDidLoad
{
[super viewDidLoad];
listTable=[[[UITableView alloc]initWithFrame:CGRectMake(0, 70, 320, 390) style:UITableViewStylePlain]autorelease];
listTable.showsVerticalScrollIndicator=NO;
listTable.backgroundColor=[UIColor whiteColor];
listTable.dataSource=self;
listTable.delegate=self;
[self.view addSubview:listTable];
listArray=[[NSMutableArray alloc]initWithObjects:@"河南",@"郑州",@"安阳",@"许昌",@"周口",@"南阳",@"信阳", nil];
proviceArray=[[NSMutableArray alloc]initWithObjects:@"河南",@"河北",@"湖南",@"湖北",@"广东",@"广西",@"山西", nil];
statusArray=[[NSMutableArray alloc]initWithObjects:@"0",@"0",@"0",@"0",@"0",@"0",@"0", nil];
}
#pragma mark-tablview的相关设置
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if ([[statusArray objectAtIndex:section]integerValue]) {
return listArray.count;
}else{
return 0;
}
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 60;
}
#pragma tablview的cell赋值方法
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *identfer=@"UItableviewCell";
UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:identfer];
if (cell==nil) {
cell=[[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identfer]autorelease];
cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;
cell.selectionStyle=UITableViewCellSelectionStyleGray;
}
cell.textLabel.text=[listArray objectAtIndex:indexPath.row];
return cell;
}
#pragma mark-tablview的section设置
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIImageView *imagView=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 100)];
imagView.backgroundColor=[UIColor clearColor];
imagView.userInteractionEnabled=YES;
[imagView setImage:[UIImage imageNamed:@"sectionbg.png"]];
UIButton *button=[UIButton buttonWithType:UIButtonTypeCustom];
[button setBackgroundImage:[UIImage imageNamed:@"buttonbg.png"] forState:UIControlStateNormal];
button.frame=CGRectMake(0, 10, 320, 80);
[button setTitle:[proviceArray objectAtIndex:section] forState:UIControlStateNormal];
button.tag=section;
[button addTarget:self action:@selector(ClickTheSection:) forControlEvents:UIControlEventTouchUpInside];
[imagView addSubview:button];
return imagView;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 100;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return proviceArray.count;
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
if (section==0) {
return @"123";
}
else if (section==1)
{
return @"456";
}
else{
return @"789";
}
}
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{
NSArray *array=[NSArray arrayWithObjects:@"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",@"i",@"j",@"k",@"l",@"m",@"n",@"o",@"p",@"q",@"r",@"s",@"t",@"u",@"v",@"w",@"x",@"y",@"z", nil];
return array;
}
#pragma mark-移动问题
-(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath
{
[listArray exchangeObjectAtIndex:sourceIndexPath.row withObjectAtIndex:destinationIndexPath.row];
[listTable reloadData];
}
#pragma mark-点击某个section的效应
-(void)ClickTheSection:(int)section
{
UIButton *button=(UIButton*)section;
if ([[statusArray objectAtIndex:button.tag]integerValue]==0) {
[statusArray replaceObjectAtIndex:button.tag withObject:@"1"];
}
else{
[statusArray replaceObjectAtIndex:button.tag withObject:@"0"];
}
[listTable reloadData];
}
#pragma mark-点击按钮触发事件
-(void)ClickEditButton
{
if (listTable.editing==YES) {
[listTable setEditing:NO animated:YES];
}
else{
[listTable setEditing:YES animated:YES];
}
}
点击打开链接博客迁移声明,介于csdn的种种限制。本博客即日起迁移到搭建的github服务器中,今后的博客主要通过hufeng825.github.com 发布。此博客只留做作转载 收藏博文用。