【IOS源码】智能聊天机器人源码—仿微信界面

这是一个IOS智能聊天机器人的源码,采用了仿微信的风格设计,调用的是图灵机器人的API,能够实现智能聊天、讲故事、讲笑话、查天气、查公交等丰富的功能

[1].[代码] 仿微信界面: UITableView
跳至 [1] [2] [3] [4] [5] [6]

?


1

2

3

4

5

6

7

8

9

//add UItableView
    self.tableView=[[UITableView alloc]initWithFrame:CGRectMake(0, 44, self.view.frame.size.width, self.view.frame.size.height-88) style:UITableViewStylePlain];

    [self.tableView registerClass:[ChartCell
class] forCellReuseIdentifier:cellIdentifier];

    self.tableView.separatorStyle=UITableViewCellSeparatorStyleNone;

    self.tableView.allowsSelection = NO;

    self.tableView.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"chat_bg_default.jpg"]];

    self.tableView.dataSource=self;

    self.tableView.delegate=self;

    [self.view addSubview:self.tableView];

[2].[代码] 仿微信界面:KeyBordVIew
跳至 [1] [2] [3] [4] [5] [6]

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

    //add keyBorad
    self.keyBordView=[[KeyBordVIew alloc]initWithFrame:CGRectMake(0, self.view.frame.size.height-44, self.view.frame.size.width, 44)];

    self.keyBordView.delegate=self;

    [self.view addSubview:self.keyBordView];

    //注册通知, 键盘收起, 弹出
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardShow:) name:UIKeyboardWillShowNotification object:nil];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardHide:) name:UIKeyboardWillHideNotification object:nil];

//键盘弹出响应
-(void)keyboardShow:(NSNotification *)note

{

    CGRect keyBoardRect=[note.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];

    CGFloat deltaY=keyBoardRect.size.height;

    

    [UIView animateWithDuration:[note.userInfo[UIKeyboardAnimationDurationUserInfoKey] floatValue] animations:^{

        

        self.view.transform=CGAffineTransformMakeTranslation(0, -deltaY);

    }];

}

//键盘收起响应
-(void)keyboardHide:(NSNotification *)note

{

    [UIView animateWithDuration:[note.userInfo[UIKeyboardAnimationDurationUserInfoKey] floatValue] animations:^{

        self.view.transform = CGAffineTransformIdentity;

    }];

}

[3].[代码] 图灵机器人API的获取
跳至 [1] [2] [3] [4] [5] [6]

?


1

2

3

//API申请地址:www.tuling123.com

//API体验地址:http://www.tuling123.com/openapi/cloud/proexp.jsp

//在注册之前,需要注册图灵机器人API并获取自己的APIkey,然后才能够进行下一步的开发工作。

[4].[代码] 图灵机器人API调用 跳至
[1] [2] [3] [4] [5] [6]

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

//每当编辑完问题后

//1. 显示自己的问题 messageType=1

//2. 调用API,返回结果
-(void)KeyBordView:(KeyBordVIew *)keyBoardView textFiledReturn:(UITextField *)textFiled

{

    

    //显示自己的问题
    ChartCellFrame *cellFrame=[[ChartCellFrame alloc]init];

    ChartMessage *chartMessage=[[ChartMessage alloc]init];

    

    [email protected]"icon01.png";

    chartMessage.messageType=1;

    chartMessage.content=textFiled.text;

    cellFrame.chartMessage=chartMessage;

    

    [self.cellFrames addObject:cellFrame];

    [self.tableView reloadData];

    

    //滚动到当前行
    [self tableViewScrollCurrentIndexPath];

    

    //利用用户问题, 查询结果

    //API请求格式。 具体格式见图灵官网
    //6c2cfaf7a7f088e843b550b0c5b89c26 替换成你申请的key即可
    NSString* urlString = [NSString stringWithFormat:@"http://www.tuling123.com/openapi/api?key=6c2cfaf7a7f088e843b550b0c5b89c26&&info=%@", textFiled.text];

    

    //NSUTF8StringEncoding编码。 避免中文错误
        urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    //调用API
    NSURL *url = [NSURL URLWithString:urlString];

    testRequest = [ASIHTTPRequest requestWithURL:url];

    [testRequest setDelegate:self];

    [testRequest startAsynchronous];

    

    [email protected]"";

    myTextField = textFiled;

}

#pragma mark - 返回机器人回答

//调用API完毕, 返回图灵回答结果

//1. 收起键盘

//2. 显示回答内容
- (void)requestFinished:(ASIHTTPRequest *)request

{

    

    //收起键盘
    [myTextField resignFirstResponder];

    

    // 当以文本形式读取返回内容时用这个方法
    // 解析返回的json数据    
NSString *responseString = [request responseString];

    self.testDic = [responseString objectFromJSONString];

    self.testArr = [testDic objectForKey:@"text"];

    

    

    //显示回答内容
    ChartCellFrame *cellFrame=[[ChartCellFrame alloc]init];

    ChartMessage *chartMessage=[[ChartMessage alloc]init];

    

    [email protected]"icon02.png";

    chartMessage.messageType=0;

    chartMessage.content=[NSString stringWithFormat:@"%@", self.testArr];

    cellFrame.chartMessage=chartMessage;

    

    [self.cellFrames addObject:cellFrame];

    [self.tableView reloadData];

    

    //滚动到当前行
    [self tableViewScrollCurrentIndexPath];

    

}

// API请求失败
- (void)requestFailed:(ASIHTTPRequest *)request

{

    NSError *error = [request error];

    NSLog(@"error --- %@",error);

    

    UIAlertView *alert_ = [[UIAlertView alloc]initWithTitle:@"提示"
message:@"无网络可用,请检查网络状态"
delegate:self cancelButtonTitle:@"知道了"
otherButtonTitles: nil];

    [alert_ show];

}

[5].[图片] 图灵1.jpg 跳至
[1] [2] [3] [4] [5] [6]

[6].[图片] 图灵2.jpg 跳至
[1] [2] [3] [4] [5] [6]

时间: 2024-11-03 21:28:48

【IOS源码】智能聊天机器人源码—仿微信界面的相关文章

html5聊天案例|趣聊h5|仿微信界面聊天|红包|语音聊天|地图

之前有开发过一个h5微直播项目,当时里面也用到过聊天模块部分,今天就在之前聊天部分的基础上重新抽离模块,开发了这个h5趣聊项目,功能效果比较类似微信聊天界面.采用html5+css3+Zepto+swiper+wcPop+flex等技术融合开发,实现了发送消息.表情(动图),图片.视频预览,添加好友/群聊,右键长按菜单.另外新增了语音模块.地图定位模块.整体功能界面效果比较接近微信聊天. 项目运行效果图: // ripple波纹效果 wcRipple({ elem: '.effect__ripp

h5移动端聊天室|仿微信界面聊天室|h5多人聊天室

今年的FIFA世界杯甚是精彩,最近兴致高涨就利用HTML5开发了一个手机端仿微信界面聊天室,该h5聊天室采用750px全新伸缩flex布局,以及使用rem响应式配合fontsize.js,页面弹窗则是使用自己开发的wcPop.js插件:编辑器部分由原先的单一表情新增为动图表情,实现了消息.表情发送 | 大图.视频效果预览 | 仿微信红包.打赏等微交互功能. 案例截图: // ...滚动聊天区底部 function wchat_ToBottom(){ //$(".wc__chatMsg-panel

如何做一个自己的开源聊天项目?(仿微信)

万事开头难 在我决定做开源是因为自身工作接触到大多数的项目都是基于开源大佬写的框架,自觉惭愧,工作以来一直忙于业务与功能实现,多多少少做过的几个项目也没能抽出部分好一点的功能业务Maven包什么的提供也同行使用或借鉴,这实在是有悖于自己的初心. 决定做开源是今年(2018)7月末的时候,自己曾做的一个Iot项目刚刚被几个网上的朋友问到,并寻求源码,那么久做了一个Demo,并放到了GitHub上. 之后感觉应该做一个有自己情感注入的项目才行,而不是工作上的现实交易的项目,我想做一个属于自己的项目,

h5聊天室web端(仿微博、微信)|h5仿微信网页端|仿微信界面弹窗

html5开发的仿微博.微信聊天web端案例,h5仿微信聊天网页版,采用html5+css3+jquery+swiper+wcPop等技术进行布控架构开发,弹窗插件wcPop.js进行了一次全面api升级,修复编辑器插入表情时光标定位错误bug,新增了上传附件及自定义推送内容,另外也新增了个人名片.上传附件.分享等样式,功能上实现了消息.表情的发送,图片.视频全屏预览. 项目运行图: /* --- 用户设置.Start ---*/ // 联系人/群聊切换 $("body").on(&q

react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面

一.前言 9月,又到开学的季节.为每个一直默默努力的自己点赞!最近都沉浸在react native原生app开发中,之前也有使用vue/react/angular等技术开发过聊天室项目,另外还使用RN技术做了个自定义模态弹窗rnPop组件. 一.项目简述 基于react+react-native+react-navigation+react-redux+react-native-swiper+rnPop等技术开发的仿微信原生App界面聊天室——RN_ChatRoom,实现了原生app启动页.As

Taro聊天室|react+taro仿微信聊天App界面|taro聊天实例

一.项目简述 taro-chatroom是基于Taro多端实例聊天项目,运用Taro+react+react-redux+taroPop+react-native等技术开发的仿微信App界面聊天室,实现了发送消息/emoj表情.gif表情大图.图片预览.发红包.动态圈等功能. 二.预览效果 编译到H5端.小程序.App端效果如下:(后续大图均为APP端) 三.技术栈 编码/技术:Vscode + react/taro/redux/RN iconfont图标:阿里字体图标库 自定义导航栏Navig

iOS简易图片选择器 (图片可多选,仿微信)

调用方法 NickyImagePickerViewController *pickerController = [[NickyImagePickerViewController alloc]init]; pickerController.pickerDelegate = self; //设置代理 [self.navigationController presentViewController:pickerController animated:YES completion:nil]; 回调 -

智能聊天机器人实现(源码+解析)

前言: 之前写了一篇  <美女图片采集器 (源码+解析)> 得到了众多朋友的支持, 发现这样系列的教程还是挺受欢迎的, 也激励我继续写下去. 也在那一篇文章中提过, 美女图片采集只是我先前那个完整APP中的一个功能罢了, 还有其他几个比较好玩的尚未开源, 之后有时间会逐一写篇教程. 今天带来的是智能聊天机器人实现(源码+解析), 和上一篇教程一样, 当你没有女朋友的时候, 可以用它来打发时间.这里的API是图灵机器人提供的, 实现一个十分强大的机器人. 具体功能包括: ? 支持聊天对话.智能问

Android 高仿微信实时聊天 基于百度云推送

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38799363 ,本文出自:[张鸿洋的博客] 一直在仿微信界面,今天终于有幸利用百度云推送仿一仿微信聊天了~~~ 首先特别感谢:weidi1989分享的Android之基于百度云推送IM ,大家可以直接下载:省了很多事哈,本例中也使用了weidi的部分代码,凡是@author way的就是weidi1989的代码~~ 1.效果图 核心功能也就上面的两张图了~~~我拿着手机和模拟器