当前位置: 首页 > 编程日记 > 正文

iOS环信聊天界面中点击头像和消息的几种状态

/*

环信自带头像点击事件

*/

- (void)messageViewController:(EaseMessageViewController *)viewController

didSelectAvatarMessageModel:(id<IMessageModel>)messageModel {

内容可以根据需要自己添加

}

/*!

 @method

@brief 点击了简历消息 (lyq添加)

@discussion 点击了简历消息,如果使用,用户必须要自定义处理

@param viewController 当前消息视图

@param messageModel 消息模型

*/


- (void)messageViewController:(EaseMessageViewController *)viewController didResumeSelectForModel:(id<IMessageModel>)messageModel

{

内容可以根据需要自己添加NSDictionary *dict = messageModel.message.ext;

    // 点击后跳转

    CompanyHomeEntity *en = [[CompanyHomeEntity alloc] init];

en.itemId = dict[kProfileUserID];

en.name = dict[kProfileUserName];

en.paymember = @"-1";

    CompanyPersonalDetailVC *vc = [[CompanyPersonalDetailVC alloc] init];

vc.entity = en;

    vc.isRecommend = NO;

vc.isChat = YES;

    vc.hidesBottomBarWhenPushed = YES;

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

}



/*!

 @method

@brief 点击了同意或者拒绝 0-同意;1-拒绝 (lyq添加)

@discussion 点击了交换信息,如果使用,用户必须要自定义处理

@param viewController 当前消息视图

@param messageModel 消息模型

*/

- (void)messageViewController:(EaseMessageViewController *)viewController didCellButtonSelectForModel:(id<IMessageModel>)messageModel buttonIndex:(NSInteger)buttonIndex

{

NSString *lyqKey = [messageModel.message.ext objectForKey:kKeyFlag];

if (buttonIndex == 1) {

// 拒绝交换

if ([lyqKey isEqualToString:kWXFlag]) {

NSDictionary *ext = @{kKeyFlag:kWXFlag,kSendTextFlag:@"您已成功拒绝了对方交换微信请求",kRecvTextFlag:@"对方拒绝了您的交换微信请求",kReplyFlag:@"1"};

[self sendTextMessage:@"[交换微信]" withExt:ext];

}else if ([lyqKey isEqualToString:kTelFlag]){

NSDictionary *ext = @{kKeyFlag:kTelFlag,kSendTextFlag:@"您已成功拒绝了对方交换电话请求",kRecvTextFlag:@"对方拒绝了您的交换电话请求",kReplyFlag:@"1"};

[self sendTextMessage:@"[交换电话]" withExt:ext];

}

}else if (buttonIndex == 0) {

// 同意交换

if ([lyqKey isEqualToString:kWXFlag]) {

NSString *wxid = [UserEntity getWechatid];

if (wxid.length != 0) {

NSString *recvstr = [NSString stringWithFormat:@"%@的微信号:%@",[UserEntity getNickName],wxid];

NSString *wxstr = [messageModel.message.ext objectForKey:kNumberFlag];

NSString *sendstr = [NSString stringWithFormat:@"%@的微信号:%@",[messageModel.message.ext objectForKey:kProfileUserName],wxstr];

                NSDictionary *ext = @{kKeyFlag:kWXFlag,kSendTextFlag:sendstr,kRecvTextFlag:recvstr,kReplyFlag:@"0",kNumberFlag:wxid};

[self sendTextMessage:@"[交换微信]" withExt:ext];

}else{

[self changeWXid];

}

}else if ([lyqKey isEqualToString:kTelFlag]){

NSString *recvstr = [NSString stringWithFormat:@"%@的手机号:%@",[UserEntity getNickName],[UserEntity getPhone]];

NSString *wxstr = [messageModel.message.ext objectForKey:kNumberFlag];

NSString *sendstr = [NSString stringWithFormat:@"%@的手机号:%@",[messageModel.message.ext objectForKey:kProfileUserName],wxstr];

            NSDictionary *ext = @{kKeyFlag:kTelFlag,kSendTextFlag:sendstr,kRecvTextFlag:recvstr,kReplyFlag:@"0",kNumberFlag:[UserEntity getPhone]};

[self sendTextMessage:@"[交换电话]" withExt:ext];

}

}

}



相关文章:

ASP.NET将Session保存到数据库中

因为ASP.NET中Session的存取机制与ASP相同&#xff0c;都是保存在进行中&#xff0c; 一旦进程崩溃&#xff0c;所有Session信息将会丢失&#xff0c;所以我采取了将Session信息保存到SQL Server中&#xff0c;尽管还有其它的几个方式&#xff08;本文不作介绍&#xff09;&…

iOS App上架流程

一、前言&#xff1a;作为一名iOSer&#xff0c;把开发出来的App上传到App Store是必要的。下面就来详细讲解一下具体流程步骤。 二、准备&#xff1a; 一个已付费的开发者账号&#xff08;账号类型分为个人&#xff08;Individual&#xff09;、公司&#xff08;Company&#…

不止Markov决策过程,全景式分析强化学习研究内容

作者 | 肖智清编辑 | 刘静来源 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;强化学习作为通用人工智能的希望&#xff0c;吸引了很多人工智能爱好者学习和研究。Markov决策过程是最知名的强化学习模型&#xff0c;强化学习教程也常以Markov决策过程作为起点。但是&am…

Windows下创建进程简介

正在执行的应用程序称为进程&#xff0c;进程不仅仅是指令和数据&#xff0c;它还有状态。状态是保存在处理器寄存器中的一组值&#xff0c;如当前执行指令的地址、保存在内存中的值&#xff0c;以及唯一定义进程在任一时刻任务的所有其他值。进程与应用程序的一个重要的区别在…

jQuery中鲜为人知的的几个方法

转来学习一下 jQuery中鲜为人知的的几个方法 jQuery近些年来仍旧是web开发中最受欢迎的类库&#xff0c;虽然大家褒贬不一&#xff0c;但是仍旧不失为一款最流行的Javascript&#xff0c;在今天这篇文章中&#xff0c;我们将介绍几个jQuery的相关方法&#xff0c;无论你是入门级…

Linux下创建进程简介

在博文https://blog.csdn.net/fengbingchun/article/details/108940548中简单介绍了Windows下通过函数CreateProcess创建进程的过程&#xff0c;这里简单介绍下Linux下通过fork函数创建进程的过程。很早之前在https://blog.csdn.net/fengbingchun/article/details/45690745中也…

热更新 FrameWork

工作中遇到想要绕过AppStore直接更新App的要求&#xff01;这里友情提示下&#xff0c;看了很多资料只是是实现了功能&#xff0c;但在项目中并没有真正用到&#xff01;资料大多都显示会被拒&#xff0c;这个说的是个人级的&#xff0c;好像企业级的不会这样,仅仅是项目需要做…

陆首群:评人工智能如何走向新阶段?

作者 | 陆首群&#xff0c;中国开源软件推进联盟名誉主席 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 编者按&#xff1a;近来&#xff0c;业内关于深度学习算法的潜力是否已达天花板的争论陆续发出。有人认为&#xff0c;基于深度学习算法的应用还有深度开拓空…

Mysql INSERT、REPLACE、UPDATE的区别

用于操作数据库的SQL一般分为两种&#xff0c;一种是查询语句&#xff0c;也就是我们所说的SELECT语句&#xff0c;另外一种就是更新语句&#xff0c;也叫做数据操作语句。言外之意&#xff0c;就是对数据进行修改。在标准的SQL中有3个语句&#xff0c;它们是INSERT、UPDATE以及…

软件调试的艺术笔记:GDB

很久之前&#xff0c;在https://blog.csdn.net/fengbingchun/article/details/41413381中简单整理过gdb中常用的一些命令&#xff0c;不齐全&#xff0c;这里按照《软件调试的艺术》一书中关于gdb的介绍再做次整理。《软件调试的艺术》于2009年由人民邮电出版社出版。 1. 预备…

App Store 审核被拒整理

整理以前和现在遇到的审核被拒第一&#xff1a;2.2 DetailsWe discovered one or more bugs in your app when reviewed on iPhone running iOS 8.1.3 on both Wi-Fi and cellular networks. Specifically, we were not able to complete the In App Purchase. When tapped on …

只服这篇“神文”:基于老子哲学、相对论的超级人工智能模型

作者 | Anonymous authors译者 | TroyChang出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;在此前我们为大家介绍 ICLR 2020 论文投稿情况时&#xff0c;提到了一篇“神作”在论文中作者们提出一个 ASI 概念&#xff08;Artificial Super Intelligence&am…

Navicat Premium使用教程【比较详细】

Navicat Premium使用教程简介&#xff1a;Navicat Premium是众所周知的数据库操作软件。本文比较详细。1、打开Navicat Premium&#xff0c;点击连接&#xff0c;选择MySQL&#xff0c;创建新连接。输入安装MySQL是的用户名和密码。点击确定。2、admin数据连接已经创建成功。下…

如何用Neo4j和Scikit-Learn做机器学习任务?| 附超详细分步教程

作者 | Mark Needham译者 | Tianyu、Shawnice编辑 | Jane出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;图算法不是一个新兴技术领域&#xff0c;在开源库中已经有很多功能强大的算法实现。近两年&#xff0c;业内的学者与科学家都在积极探索可以弥补深度…

Docker在Ubuntu16.04和Windows10家庭版上安装操作步骤

之前在 https://blog.csdn.net/fengbingchun/article/details/109559500 中对Docker作了简单的介绍&#xff0c;这里介绍下Docker在Ubuntu16.04 x86_64 64位上和Windows10 x86_64 64位家庭版上的安装过程。 在Ubuntu上安装Docker(或Docker引擎)&#xff0c;Ubuntu必须是64位的…

iOS 不同机型屏幕适配

// .pch 文件中写 // 判断是iPhone机型 /** 4s 960 * 640* 5/5s 1136 x 640* 6/6s/7/8 4.7英寸 1334 x 750* 6p/6sp/7p/8p 5.5英寸 1920 x 1080* X 5.8英寸 2436 x 1125}*/ #define IS_IPHONE_4s [UIScreen instancesRespondToSelector:selector(currentMode)] ? \ CGSizeEqua…

北京中天荣泰视觉检测 仿真

www.romtek.cnhttp://jobs.zhaopin.com/191485013250433.htm?ssidkeyy&ff01&ss101转载于:https://www.cnblogs.com/pengkunfan/p/4316018.html

Docker客户端常用命令整理

之前在 https://blog.csdn.net/fengbingchun/article/details/109584460 中介绍过在Windows10家庭版和Ubuntu16.04上安装Docker的操作步骤&#xff0c;这里整理下Docker客户端常用命令。 在Windows10家庭版上运行Docker后&#xff0c;通过VMware就不能打开Ubuntu16.04虚拟机了…

深度学习入门笔记,三流程序员如何凭借实力逆袭高薪?你不服不行!

最近经常有朋友提及&#xff0c;想要入门深度学习&#xff0c;该如何学习&#xff1f;关于深度学习&#xff0c;网上的资料很多&#xff0c;不过貌似大部分都不太适合初学者。 我曾经是一名三流程序员&#xff0c;每天的工作内容就是在前人留下的 bug 上写新的bug&#xff0c;我…

Swift编程语言

The Swift Programming Language中文手册1.【精校版】The Swift Programming Language--欢迎使用Swift--关于Swift2.【精校版】The Swift Programming Language-欢迎使用Swift-Swift 初见3.The Swift Programming Language--语言指南--基础部分4.The Swift Programming Languag…

ondblog 修改informix日志模式

-N No Logging 没有日志-U Unbuffered Logging 非缓冲日志-B Buffered Logging 缓冲日志-A Unbuffered Logging, Mode ANSI ANSI模式No Logging 没有日志----“没有日志”模式只向逻辑日志写很少的信息&#xff0c;它只记录执行的DDL语句&#xff0c;这些语句影响到的行并…

iOS RunLoop详解

一、简介 CFRunLoopRef源码RunLoop是一个对象&#xff0c;这个对象在循环中用来处理程序运行过程中出现的各种事件&#xff08;比如说触摸事件、UI刷新事件、定时器事件、Selector事件&#xff09;&#xff0c;从而保持程序的持续运行&#xff1b;而且在没有事件处理的时候&…

开源库jemalloc简介

jemalloc是通用的malloc(3)实现&#xff0c;它强调避免碎片和可扩展的并发支持。它的源码位于https://github.com/jemalloc/jemalloc&#xff0c;最新稳定版本为5.2.1。 glibc的内存分配算法是基于dlmalloc实现的ptmalloc&#xff1b;tcmalloc是Google开发的内存分配器&#x…

改善深度学习训练的trick总结 | CSDN博文精选

扫码参与CSDN“原力计划”作者 | ZesenChen来源 | CSDN博客精选在深度学习中&#xff0c;同样一个模型用不同的初始化&#xff0c;数据处理&#xff0c;batch size&#xff0c;学习率&#xff0c;优化器都能得到不同性能的参数。我根据自己参与过的比赛中经常用到的一些trick进…

jQuery中的Ajax----03

为什么80%的码农都做不了架构师&#xff1f;>>> $.ajax(0方式是jQuery最底层的Ajax实现。 它的结构为: $.ajax(options) 该方法只有1个参数&#xff0c;但在这个对象里包含了$.ajax()方法所需要的请求设置以及回调函数等信息。参数以key/value的形式存在&#xff0…

Docker容器中数据两种持久化存储方式:卷和挂载宿主目录

镜像使用的是分层存储&#xff0c;容器也是如此。每一个容器运行时&#xff0c;是以镜像为基础层&#xff0c;在其上创建一个当前容器的存储层&#xff0c;我们可以称这个为容器运行时读写而准备的存储层为容器存储层。容器存储层的生存周期和容器一样&#xff0c;容器消亡时&a…

CFRunLoopRef 的内部逻辑(向 ibireme学习)

据苹果在文档里的说明&#xff0c;RunLoop 内部的逻辑大致如下:/// 用DefaultMode启动 void CFRunLoopRun(void) {CFRunLoopRunSpecific(CFRunLoopGetCurrent(), kCFRunLoopDefaultMode, 1.0e10, false); }/// 用指定的Mode启动&#xff0c;允许设置RunLoop超时时间 int CFRunL…

倒计时 3 天!「2019 嵌入式智能国际大会」全日程大公开!

立即抢购&#xff1a;https://t.csdnimg.cn/otBk还有3天&#xff0c;大伙期待的「2019嵌入式智能国际大会」正式开幕了&#xff01;2019年12月6日-7日&#xff0c;我们在深圳市人才研修院见&#xff01;大会以“万物互联泛在智能”为主题&#xff0c;邀请30位海内外顶级专家作为…

Fckeditor PHP/ASP File Upload Vul

目录 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述 FCKeditor是目前最优秀的可见即可得网页编辑器之一&#xff0c;它采用JavaScript编写。具备功能强大、配置容易、跨浏览器、支持多种编程语言、开源等特点。它非常流行…

iOS App上架流程(2016详细版),真心很详细。

一、前言&#xff1a;作为一名iOSer&#xff0c;把开发出来的App上传到App Store是必要的。下面就来详细讲解一下具体流程步骤。二、准备&#xff1a;一个已付费的开发者账号&#xff08;账号类型分为个人&#xff08;Individual&#xff09;、公司&#xff08;Company&#xf…