【4858.com】环信IM难题集中,0整合个推例子

By admin in 4858.com on 2019年2月7日

近年做一个后台发送音讯推送到app(android和ios)的功力,该意义选拔的是个推接口,基于php的,我用TP5来落到实处这么些推送流程。先看官方demo吧。可以先参考官方给到的例子来看。

<pre>
1)项目里面不必要环信SDK的太多效益,只是想要聊天和好友成效,其他都毫不,那SDK一定要一而再跟着更新么?
a.环信SDK版本都是前进包容并且稳定的,每一回换代安卓只要更新.a包即可。
b.每回换代的本子都是平静可信性的,可以放心使用。
2)A用户通过Rest接口添加B为挚友,B的客户端上好友列表上是还是不是有?
对的,B那边也添加A为好友了。
3)黄某某(产品事业部)中,怎么把文字取出来? 用XML解析出来。
4)请问一下apns能够安装自定义声音么?
环信的推送不援救自定义,只能设置开和关,不可以自定义声音,要是有须要可以接纳第三方的推送。
5)iOS的demo中去除好友,聊天记录删除的只是一方好友的聊天记录么?
聊天记录不会删除,只是不在UI上显得出来了而已。
6)环信辅助@作用么? 不支持,须求自己去落实。
7)发送音信的时候,没有互联网,就会立即显得发送不成功,环信会不会像QQ那样有个祥和去不断请求的时辰啊?
没有,发送不成功就须要点击叹号重新发送。
8)一个环信应用可以挂号八个推送证书吗? 可以登记多个推送证书。
9)环信发送图片这里是断点发送的?要是断开了,隔了一段时间,怎么重连?
图片发送不会断点续传,发送不成功会产出一个叹号,点击之后会再一次发送。
10)要是没有登记过的账号去调用环信的报到接口,是或不是也能三番五次聊天服务器?
不是,没有挂号的用户不可以聊聊。
11)在哪设置气泡高度 在sizeThatFits中设置。
12)环信怎么判断当前用户是或不是登陆?
环信不关怀用户是不是登录,类似微信一模一样,即使不在线也可以推送,只能透过Rest在得到好友详情的时候,看到好友是online仍然offline。
13)用户在签到意况下后台突显是有证书的,是否已退出账号后证书名称在后台就体现为空了?对的,登陆的时候在后台会突显,退出之后就不呈现了。
14)如何设置语音的时长限制?
那些须要开发者自己去设置,可以做一个用当下录制时间减去初始录制时间的论断。别的,音频部分已经完全脱离出来,SDK已经不做了,全体内置UI上供开发者自行决定操作。
15)发送音信后 actity一贯在转动,是怎么回事?
需求在发送成功的回调方法里面刷新UI。
16)在服务端通过rest 删除的至交的话,环信的server 端会通告client端吗?
会的。
17)ios 可以重复建群吗?同样的三民用可以建多个群吗? 可以再次建群。
18)环信有接近微信朋友圈的沙盘? 方今还没有对象圈的模版。
19)假使用户在两台ios设置上相互踢下线,要怎么创新最终登陆设置的推送设置?
在用户登录的时候,会把用的证书名发到后台,后台就会把证件和app当前用户绑定。
20)环信SDK协助离线音讯啊?
辅助的,只要用户在线,则直接把新闻发送过去,ios端借使不在线则透过apns推送过去的,Android端若是不在线则聊天音讯先保存在服务器上,等Android登录后直接推送过去。
21)如何设置让环信推送彰显昵称而不是username呢? 设置格局[[EaseMob
sharedInstance].chatManager setApnsNickname:@”APNS昵称”]。
22)apns上传的是怎么文件? apns上传的是p12,并且须求密码。
23)环信的神色可以换成app的呢? 表情就是字符串替换。字符串环信没有定义,
app里协定好了就足以。比如<:)>
这些字符串代表笑脸的图形,ui上截取了就替换就足以了。
对于环信来说,发的就是一个字符串。
24)怎么判断某条信息是别人发的要么自己发的?
用当前登录人的环信id和message的from做相比,假若相同,就是祥和发的,反之,是对方。
25)[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(loginStateChange:) name:KNOTIFICATION_LOGINCHANGE
object:nil]; 曾几何时接触?
登录状态改变才会接触的打招呼:登录的时候,退出登录的时候,要剥离的时候。
26)[[EaseMob sharedInstance].chatManager
setIsAutoLoginEnabled:YES]; 这几个理应写到哪儿啊? 要想平素设置自动登录,
就在用户率先次登录成功之后设置。
27)要发透传新闻,是否先要把推送证书配置好 ?
发透传不用推送证书的,发推送才要证件的。
28)环信能自己安装心跳包么?180s有点长? 不得以。
29)环信的心跳包每180s发一次,怎么能确保实时收到对么发来的音信?是或不是做了监听?
有监听回调方法。
30)语音怎么过段时间就播放不了?平素突显正在下载语言 ,稍后点击 ?
demo的话,
倘使是协调发送的话,就无须验证是或不是下载了,可以直接播放。即使是对方的话,要咬定一下。
31)历史数据会有显示不完全的标题,如何是好?
EMConversation类,有个loadAllMessages,调用该办法就能够获获得存入db的具备音信。
32)透传新闻是还是不是有文字个数限制? 必要在30kb内, 没有个数限制。
33)怎么让未读新闻处于监听格局呢?
未读音信数改变是有回调方法的–(void)didUnreadMessagesCountChanged。
34)群主能更改吗? 近年来还无法,但他日会追加这些接口。
35)图片压缩比用户能调整么?
可以的,那么些是iOS的缩减方法setCompressionQuality。
36)环信里面 android和ios 里面 message的增添字段是通用的呢? 是的。
37)iOS和安卓都用的百度地图呢? 安卓是百度地图,iOS是苹果自己的地形图。
38)手机端加了个音讯免骚扰作用,当webim
和手机端都登陆时方可透过那么些效应设置手机是还是不是接受音讯么?
不可以,免侵扰只是安装推送免侵扰。
39)做了个测试,先用一个部手机发了众多信息,然后用另一个有线电话登这几个账号时,发现赢得的聊天记录唯有2条,而且照旧在此之前该账号在该手机上发的?
信息记录封存到地头了,所以换个手机看不到。
40)不是给每个用户分配100m, 超越100M的数码能赢得吗?
领先100M新的记录会顶掉老的笔录。
41)环信 SDK扶助模拟器吗?仍然必须求用真机来测试?
接济,可是多少效果只可以真机测试,比如推送,视频等。
42)IOS 中哪些收获某个聊天组中的成员列表? 用
didFetchGroupOccupantsList方法得到。
43)环信那边语音能不可能像微信那样:靠近耳朵的时候就听筒,远离耳朵的时候就扬声器播放啊?可以,要在-
(void)proximitySensorChanged:(BOOL)isCloseToUser方法中设置。
44)能或不能够查看离线信息? 无法,只好查看离线信息未读数。
45)读取临时会话列表的措施,有的对象里username 是null,那是为什么?
创制会话的时候,是内需chatter 那些目的,chatter不可以为null
,可以去打印下chatter,判断是不是为空。
46)想删除客户端本地聊天记录,咋做? 那是删除聊天记录的主意(参考):
-(NSUInteger)removeConversationsByChatters:(NSArray*)chattersdeleteMessages:(BOOL)aDeleteMessages。
47)后台公司管理员可以改变吗?
后台集团管理员不可能一贯删除,邮箱也不可以间接修改,不过能够用新的邮箱再添加一个管制,然后把旧的管理员从这一个org下移除掉。
48)上传图片后,重回的路线不可能下载图片,什么来头?
为了安全,下载进程中还要进入另外参数。不是只透过url就能下载的。要求参数(share-secret)。
49)NSArray *buddyList = [[EaseMob sharedInstance].chatManager
buddyList]; 获取到的都是空的,什么来头?
“那几个是取内存值,要博取detail,要去服务器获取,或者设置sdk自动获取。 //
登录成功后,自动去取好友列表// SDK获取停止后,会回调
复制代码12[[EaseMob sharedInstance].chatManager
asyncFetchBuddyListWithCompletion:^(NSArray *buddyList, EMError
*error) { } onQueue:nil]”
50)图文混排怎么落到实处?
自定义的将图纸,username以及想要突显的其他内容(通过增加属性message.ext)一块显示到UI上。
51)播放语音的时候,传感器打开了,不过语音播报完后,传感器还地处打开状态,何时关闭的?
还要加上开启和倒闭距离感应。
52)demo总是不弹出键盘,怎么做? 弹出键盘的快捷键是Command +
k(可以百度下xcode6的模仿器弹出键盘的章程)。
53)IOS使用环信的demo进行扩展开发,上传后被拒
,说是后台播放音乐的缘由,那怎么做?
可以设想去掉声音,借使要落到实处地点公告播放声音,再去调用localNotification的default
sound就足以了。
54)一个群ID无法当做一个陌生人ID? 不可能。
55)新闻存到db里面去了 NSArray *chats = [weakSelf.conversation
loadNumbersOfMessages:(currentCount + KPageCount)
before:beforeTime];为啥没有拿出去呢?
那有依照时间和数据来分别取得的。打印一下多少。有时候来新新闻了,取的照样是后有点条,数据就会难堪了。这些api是没难题的。db可以取到表明已经存了数码。可能是跟取到的多寡和时间有涉嫌。
56)cmd音讯,跟聊天的音讯,不设有争辩么?
普通新闻回调的办法跟这几个不雷同,所以不争辨,普通聊天得接受格局didReceiveMessage,cmd音讯的收受方式didReceiveCmdMessage。
57)服务器再次来到登录战败,提醒:logInfalse(null),error
已登录,请先调用logOff 。那是怎么着来头?
正在登陆的时候又发起了登陆请求。
58)聊天列表是本地保存的要么从服务器上得到的?
聊天列表都是保留在地头了,是sdk自动保存的。服务器上也有存聊天记录,不过客户端不可能取服务器上得聊天记录。聊天记录在沙盒里,地点在/library/easemobDB
里面。
59)在哪修改环信logo(CFBundleDisplayName),即使是安卓要在何地改?
在InfoPlist.string
文件中改变CFBundleDisplayName;安卓中要在SplashAcitivity里面修改。
60)自动登录的回调会调用三次?
程序进入的时候调一遍,会调用它的多个点子,willAutoLogin和didAtuoLogin。
61)环信的那些.a文件之中是或不是有pjsip生成的库文件呢?
有的,不过还没有暴光出来。
62)iOS发送新闻时,收到EMErrorServer提姆eout 发送音讯超时的报错。
互连网景况非凡,可能还有任何什么原因促成?
假如是突发性的报错,是有可能的。因为客户端的网络本来就是一个不稳定的弱网络。用户望着感觉网络是得天独厚的,但实则会有种种临时中断。
63)语音新闻播报之后,未读标识消失,不过关掉页面,再一次进入,还有未读提醒,那么些是或不是是个bug?
这一个是通过增添属性来判断的,播放之后,就修改掉,再两次进入的时候,按照这几个值来判断是还是不是播放过。
64)能够落成每条推送新闻的昵称都自定义么?
环信下一步会支持自定义推送音信模板。每个app可以有协调一定的模版。但按照备注来推送,那一个推断支持起来是有诸多不便的。还没想好怎么帮忙。
65)接收本地文告的时候,布告音讯前边突显的是环信id而不是nickname,如何做?
“NSString *title = message.from; if (message.isGroup) { NSArray
*groupArray = [[EaseMob sharedInstance].chatManager groupList]; for
(EMGroup *group in groupArray) { if ([group.groupId
isEqualToString:message.conversationChatter])
{ title = [NSString stringWithFormat:@””%@(%@)””,
message.groupSenderName, group.groupSubject]; break; } } } NSString
*title = message.from中拿到那一个title
再去团结的服务器请求nickname,再显示到UI上。”
66) * Terminating app due to uncaught exception
‘NSInvalidArgumentException’, reason: ‘-[XMPPManager
networkChangedToNone]: unrecognized selector sent to instance
0x15db1ef0’ 然后就完蛋了?
那几个报错,一般是用到了环信2.1.3版本里的SDKLite包,前边的2.1.3r3版本有修复,蒙受类似的难点,升级到2.1.3r3本子就可以解决了
67)环信ios的push, inhouse类型的app援救啊?
inhouse应该是指集团证书的,那些sdk不关切,只要推送证书对应配套就足以推送。
68)点击播放语音的时候,平素突显正在下载,这么些怎么化解?(message.downloading奥迪o)
解决办法是殡葬方不做判定,点击之后平素播放,只在接收方做判断。
69)logininfo有时候为空,是怎么回事? 没有登陆。
70)删除好友后,好友如故存在于好友列表中,那是干吗?
要先去掉缓存,再刷新列表。
71)在报到战败的情事下,仍旧进行其余操作,会产出哪些提醒信息?
会提示网络错误。
72)发送的音讯内容在bubbleView上的何地呀? EMChatTextBubbleView里面。
73)问下ios 自动重连不需求代码设置吗?只必要不难地监控一下呢?
自动重连不必要安装。
74)为何添加好友用户搜索任何字符都足以搜寻到吧?
demo没有范围,搜什么都得以搜到,开发者可以协调设定一下。
75)环信是未曾提供好友申请列表的接口,必要做地点数据保存是吧?
好友申请未处理,重启app服务器会再度给发过来。
76)使用环信sdk录制的口音是何许编码格式的?
现在的版本,音频部分已经从SDK中退出出来了,SDK已经不做处理了,全体置于UI上供开发者自行处理了。但是录的时候是wmv,转换成amr传过去,接收时再转移过来。
77)音讯记录封存的法则?
sdk会保存所有音信,重启app获取的音讯记录都是在缓存中的,要调用从db总得到新闻记录的方法,加到缓存中,才能显得出来。
78)环信有木有可以取得具有未读音信的接口?
有收获未读音信数的接口,不可能博得到所有的未读新闻内容。
79)用户是依据环信的科班配备的, demo在xcode5.1下面也抱错?
Xcode5现行不让提交项目了,必须用Xcode6运行。
80)ios推送能够友善设置Apns展现内容吧?
可以的,现在环信已经援救自定义推送内容了,可以支撑:1、不突显详情:“alert”:“您有一条新音讯”
2、呈现详情:“alert”:“ApnsName:XXXXX”
3、自定义。可以参照下环信的相干自定义推送部分的文档。
81)呈现详情那里,ApnsName为空时 后边的冒号能或不能够去掉?
环信近年来已辅助自定义推送内容。
82)ios推送字符长度有没有限定?
跟普通音信无异于,30kb以内。此外,自定义的字段可以全方位出示。
83)好友申请可以发推送信息么?
好友申请音讯不可能推送,好友申请未处理,下次登录的时候服务器会发放用户。
84)集成了环信最新的ios sdk的口音通话功用更新的时候被拒了,因为用户这边必要后台通话的职能的
,所以在工程安装中的后台打开了voico over ip,可是苹果不肯定那样做?
不用开那些。或者和苹果解释下,说用到的地方。
85)夯实时语音的时候调用- (EMCallSession
*)asyncCallAudioWithChatter:(NSString *)chatter
timeout:(NSUInteger)timeout error:(EMError
*)pError;这些函数,报那么些错误-[EMCallManager
asyncCallAudioWithChatter:timeout:error:]: unrecognized selector sent
to instance 0x7bea96e0(崩了)是怎么着来头? 假若用语音实时通话,
就导libEaseMobClientSDK.a那个库就足以了(无法导2个库)。
【4858.com】环信IM难题集中,0整合个推例子。86)环信音讯推送,是地点推送,仍然长途推送?
ios长连接没断开是本地通告,断开了走apns。
87)iOS 文件在殡葬之后, 对方的接纳到音讯后,
对应的文本local路径是指什么? 这么些时候文件是不是已经存到对方沙盒内了呢?
对方接受到的时缩略图,原件须求点击查看,才能下载原件。
88)环信为啥没有@成效?未来有没有扶助的布署?
有。不过还没排期。这么些一定也要做的,是个通用必要。
89)iOS环信音讯下载后的文书无后缀,请问还亟需什么样处理呢?
不要求,发送的是什么,下载的就是如何。
90)服务端先发送的文件新闻,然后ios端再发文本音信。收到的信息顺序是先收下ios端的然后在才收下服务端的。
后台发,那几个相应发送成效难题,排序是按照音讯接收时间。
91)勾选奥迪o and AirPlay后,上传App被AppStore拒绝。
不勾选这一个,然后在本地推送里设置本地推送提醒音。
92)间接通过app自己的服务器去登录环信,登录成功之后不可以聊天是怎么回事?
必须透过客户端sdk登录才能聊天,客户端跟服务器之间没有长连接不可能促膝交谈。
93)环信SDK哪些数据做了当地储存的?群组列表也是存了的?加好友、参预群组之类的公告呢?im都存了,其他的都急需开发者自己处理。群组列表不是风靡的,只是会报给,那一个最好仍旧开发者自己存。加好友、加入群组之类的公告sdk不存,ui存了。
94)头像在哪些类里面安装? EMChatViewBaseCell。
95)IOS,唯有退出登录,才总算不在线,对么?
ios不在前台,就是不在线。但要注意进入到后台3分钟后才不在线,因为ios系统会在进入后台3分钟后,把利用的接连杀死。
96)近日不帮忙群聊语音电话? 近来是语音单聊。
97)安卓和ios 录音的格式分别是怎么?
安卓是amr格式,wav格式。iOS5以前有鲜明的评释,不辅助amr直接播放。之后就从不确定性表达了。应该是也不扶助。iossdk中
发送: wav->amr; 接收:amr – >
wav,用libopencore这几个库转的。其它,现在iOS端的语音部分已经全副从SDK剥离出去了,全部置于UI上供开发者自行处理。
98)为啥得到不到群组的owner?
获取与自家有关的群组的时候只得见到群组ID,和群组名称,只有调用群详情的法子才能看到,调用群详情的点子,能观望描述和owner。
99)报错:imported from module ‘UI基特…’如何改?
没有导入UIKit,#import
100)一个音讯发送失利后,使用asyncSendMessage重新发送,音讯的timestamp怎么翻新?
重新发送音信,是用的此前的小时,qq处理的也是用的在此以前的时间,sdk内部处理的时刻。
101)ios的导航栏的颜色在哪改? [[UINavigationBar appearance]
setBarTintColor:RGBACOLOR(78, 188, 211, 1)];
102)iOS要促成一个群聊不播放提醒音或者震动,只好开发者自己达成??如故像android那样有对应的接口?
不播放,就是不调用震动和拍子就行了,要协调落成。
103)rest接口如若调用次数过大会报什么错? “会回去:503 (服务不可用)
服务器近来不可能利用(由于超载或停机维护)。 常常,那只是暂时状态。”
104)[self setupUIDemoDB] 那些是必须的呢?
不是。那么些是demo中用到的第三方DB,存的是忘年交申请这一类的音信。不指出利用,可以团结写一个DB举办仓储
105)在模拟器上登陆的时候会报这几个破绽百出,是怎么回事?
应该是用户名多敲了空格。
105)多个客户端,不过却是不一致的利用,为了兑现两岸的通讯,用了首个的appkey,用户也都是在第二个app下报了名的,不过出于推送证书要绑定app,所以第一个尚未推送,请问怎么解决?
可以上传多套证书,四个应用之间通讯只要保险是同一个appkey 就行,
假使是推送的话 ,要确保项目中的证书名称跟上盛传后台的证书名称相同。
106)IOS删除所有聊天记录的章程是哪位? 复制代码123456789101112/
!
@method @brief 删除所有会话对象 @discussion @param aDeleteMessages
是还是不是删除那个会话对象所波及的闲聊记录 @param append2Chat 是还是不是加到内存中。
YES为加到内存中。加到内存中之后, 会有相应的回调被触发从而更新UI;
NO为不加到内存中。假如不加到内存中, 则只会直接助长进DB,
不会有SDK的回调函数被触发从而去更新UI。 @result 是还是不是中标施行 */-
(BOOL)removeAllConversationsWithDeleteMessages:(BOOL)aDeleteMessages
append2Chat:(BOOL)append2Chat。
107)用户发过来的语新闻息,那边听过后,黄点(未读标识)不毁灭,
是怎么回事? “全局搜一下prepareMessage奥迪(Audi)oModel那个函数
还有modelWithMessage,把 [[EaseMob sharedInstance].chatManager
insertMessageToDB:chatMessage];
换成[chatMessage?updateMessageExtToDB];”
108)[NSConcreteData AES256Decrypt]: unrecognized selector sent to
instance XXX,如何是好? other link flags 设置-ObjC 注意分寸写。
109)framework not found Metal for architecture armv7s
需求升级到xcode6。
110)SDK太大了,咋做?
SDK大不影响打包成ipa,打包出ipa安装包后,一般只会伸张2MB左右。
111)SDK是还是不是接济64位? 支持。
112)不可能吸纳聊天信息? “接收聊天等回调,要专注以下几手续:
1、表明落成IChatManagerDelegate,如: @interface
EaseMobSDKAccountManager ()2、注册当前类接收回调 [[EaseMob
sharedInstance].chatManager addDelegate:self delegateQueue:nil];
3、完成对应回调方法,如: //
收音信的回调x000D-(void)didReceiveMessage:(EMMessage
*)message{x000D__x000D}”
113)一条信息收到很多次,为啥?
“一般是由本类数十次挂号了回调导致,请确定以下方式只进行了三回 [[EaseMob
sharedInstance].chatManager addDelegate:self delegateQueue:nil];
并且在类析构时注销回调 -(void)dealloc{ [[EaseMob
sharedInstance].chatManager removeDelegate:self]; “
114)不能吸纳好友请求,怎么办?
请确定接受好友请求的类是还是不是先导化,并宣称了IChatManagerDelegate,完毕了登记回调和回调方法。
115)APP后台时不能收到推送,如何是好?
环信将notification分为三种,一种是本土文告,一种是apns。当您后台时,长连接还存在,会走didReceiveMessage方法,必要您自己维护当地布告(即LocalNotification)。
116)APP彻底关闭,无法吸纳推送? “用户可以通过以下几步检验自己的推送
1.率先要求用户上传APNS推送证书到环信管理后台。
2.在环信iOSSDK初步化时填写用户自己的讲明名称。
3.挂号推送。
4.真机登录环信im账号。
5.翻看管理后德雷斯顿,对应im账户下是还是不是有用户刚刚写的证书名。(要是没有,请检查是不是收获了deviceToken)
6.规定用户眼前评释是或不是和和谐的序列匹配。(开发证书与生产证书需要各样对应)”
117)环信 pod 下边的SDK是最新么? “通过Cocoapods下载地址
不带有实时语音版本SDK(EaseMobClientSDKLite),引用时
#importpod’EaseMobSDK’, :git =>
‘https://github.com/easemob/sdk-ios-cocoapods.git’
包括实时语音版本SDK(EaseMobClientSDK),引用时 #4858.com,importpod
‘EaseMobSDKFull’, :git =>
‘https://github.com/easemob/sdk-ios-cocoapods-integration.git'”
118)注册deviceToken回调出现error,注册推送失利errorCode = 3000?
这是布局有难点,还尚无到环信。一般是profile文件问题,或者讲明没有打开推送功用。
类似这一个时候报的errorCode,可以百度化解,http://www.educity.cn/wenda/100742.html。
119)为何设置EMPushNotificationOptions重回error 是nil,设置也不对?
EMPushNotificationOptions设置须要在你得到deviceToken成功后才能设置。请先确定deviceToken获取没难点。
120)为何提交的APNS昵称和选择证书名后台看不到?
那多少个也是亟需用户确定了deviceToken正确获取后才得以。
121)项目中是还是不是足以用别的推送,和环信推送是还是不是有争执?
平昔不争论。
122)是还是不是足以用环信推广告之类的其余音信?
环信的推送首要为IM服务,假诺有那些须要,指出开发者用专用的推送服务。
123)后台上传证书彰显很是,怎么办?
更加一般是因为证书制作进程不对,或者密码输入有标题,密码为开发者导出证书时设置的密码。
124)证书不安装密码是还是不是可用?
眼下必要必须安装密码。
125)项目要付出了,想测下,怎样操作?
卷入时行使ad-hoc形式,可以打包出一个release版本的ipa,用那么些测试即可。
126)假设开发者想按home键后即时接到推送,怎样处理?
因为这些时候用户如故长连接中,可以监听didReceiveMessage方法,之后开发者自己已毕localNotification。
127)IOS做退出登录有请求超时的题材。
退出登陆时,真机时把isUnbind这么些特性设为YES,
解除device_token绑定,倘诺出现退出解绑失利的意况,可能是不曾网络。
128)群音讯ios登录用户发群新闻,android的记名用户收不到是什么来头?
处理措施:请提供下发送双方的log日志,和这么些app的appkey,token,以及丢得消息的id,工作人士会开展排查。
129)把appkey下的兼具用户所有安装成免打扰。有相关接口么?
不安装推送证书,倘使设置了,删掉即可。
130)环信的SDK在xcode7上能用么?
时下的新星版本2.2.0曾经支撑。
131)自动登陆的状态怎么着时候设置为no,唯有退出登陆才设置吗?
剥离的时候自动就成为no了。
132)聊天室中头像和昵称的收获,现在有怎么样方案吧?
和群聊的头像昵称方案是千篇一律的,可以参照:http://docs.easemob.com/doku.php?id=start:000quickstart:40nickna
133)1. 2.1.9本子的sdk.a包会有与fmpeg
顶牛的情形,这么些要怎么处理啊?2.他们用到了那些http://videojj.com/,视频播放的第三方?
假若用到了环信的实时语音库,同时也采纳了别样第三方的库,就会冲突。
134)发实时语音 iOS 不走apns?
现阶段还不协助,现在实时语音是经过P2P直连或者Server relay。

1)项目里面不需求环信SDK的太多效益,只是想要聊天和好友成效,其余都毫无,那SDK一定要延续跟着更新么?
a.环信SDK版本都是向前包容并且稳定的,每一次换代安卓只要更新.a包即可。
b.每趟换代的本子都是平安可信性的,可以放心使用。
2)A用户通过Rest接口添加B为好友,B的客户端上好友列表上是或不是有?
对的,B那边也添加A为挚友了。
3)黄某某(产品事业部)中,怎么把文字取出来? 用XML解析出来。
4)请问一下apns可以设置自定义声音么?
环信的推送不援助自定义,只能设置开和关,不可以自定义声音,假诺有亟待可以动用第三方的推送。
5)iOS的demo中剔除好友,聊天记录删除的只是一方好友的聊天记录么?
聊天记录不会去除,只是不在UI上显示出来了而已。 6)环信辅助@效能么?
不帮忙,必要协调去达成。
7)发送音信的时候,没有网络,就会立马显得发送不成功,环信会不会像QQ那样有个温馨去不断请求的大运啊?
没有,发送不成功就须求点击叹号重新发送。
8)一个环信应用能够登记七个推送证书吗? 可以注册多个推送证书。
9)环信发送图片那里是断点发送的?假诺断开了,隔了一段时间,怎么重连?
图片发送不会断点续传,发送不成事会师世一个叹号,点击之后会重新发送。
10)即便没有注册过的账号去调用环信的登录接口,是或不是也能三番五次聊天服务器?
不是,没有注册的用户不可以聊聊。 11)在哪设置气泡中度在sizeThatFits中装置。 12)环信怎么判断当前用户是还是不是登陆?
环信不关注用户是或不是登录,类似微信一模一样,即使不在线也可以推送,只能够通过Rest在收获好友详情的时候,看到好友是online依旧offline。
13)用户在报到状态下后台突显是有证书的,是或不是已退出账号后证书名称在后台就显得为空了?对的,登陆的时候在后台会显示,退出之后就不显得了。
14)怎么样设置语音的时长限制?
那个须求开发者自己去设置,能够做一个用当下录制时间减去初始录制时间的判断。其余,音频部分已经完全剥离出来,SDK已经不做了,全部内置UI上供开发者自行决定操作。
15)发送音信后 actity一向在旋转,是怎么回事?
必要在发送成功的回调方法里面刷新UI。 16)在服务端通过rest
删除的密友的话,环信的server 端会通告client端吗? 会的。 17)ios
可以再一次建群吗?同样的几个体能够建五个群吗? 可以重新建群。
18)环信有像样微信朋友圈的模板? 方今还一贯不朋友圈的沙盘。
19)假若用户在两台ios设置上相互踢下线,要怎么创新最终登陆设置的推送设置?
在用户登录的时候,会把用的注脚名发到后台,后台就会把证件和app当前用户绑定。
20)环信SDK帮助离线音讯呢?
协理的,只要用户在线,则平素把音讯发送过去,ios端假若不在线则透过apns推送过去的,Android端若是不在线则聊天音讯先保存在服务器上,等Android登录后间接推送过去。
21)咋样设置让环信推送显示昵称而不是username呢? 设置方法[[EaseMob
sharedInstance].chatManager setApnsNickname:@”APNS昵称”]。
22)apns上传的是怎么着文件? apns上传的是p12,并且必要密码。
23)环信的神气能够换成app的吧? 表情就是字符串替换。字符串环信没有概念,
app里协定好了就可以。比如<:)> 
这些字符串代表笑脸的图样,ui上截取了就替换就可以了。
对于环信来说,发的就是一个字符串。
24)怎么判断某条新闻是别人发的依旧要好发的?
用当前登录人的环信id和message的from做相比较,假设相同,就是和谐发的,反之,是对方。
25)[[NSNotificationCenter defaultCenter] addObserver:self   
selector:@selector(loginStateChange:)    name:KNOTIFICATION_LOGINCHANGE
object:nil]; 哪天接触?
登录意况改变才会接触的关照:登录的时候,退出登录的时候,要剥离的时候。
26)[[EaseMob sharedInstance].chatManager
setIsAutoLoginEnabled:YES]; 这一个理应写到什么地方吗? 要想一向设置自动登录,
就在用户率先次登录成功将来设置。
27)要发透传音信,是否先要把推送证书配置好 ?
发透传不用推送证书的,发推送才要证件的。
28)环信能自己设置心跳包么?180s有点长? 不能够。
29)环信的心跳包每180s发三回,怎么能保险实时收到对么发来的音讯?是否做了监听?
有监听回调方法。 30)语音怎么过段时间就播放不了?一贯突显正在下载语言
,稍后点击 ? demo的话,
倘使是自己发送的话,就无须验证是还是不是下载了,可以一向播放。要是是对方的话,要咬定一下。
31)历史数据会有体现不完全的标题,怎么做?
EMConversation类,有个loadAllMessages,调用该方法就能够获取到存入db的有着音讯。
32)透传音信是或不是有文字个数限制? 须求在30kb内, 没有个数限制。
33)怎么让未读音信处于监听格局吗?
未读信息数改变是有回调方法的–(void)didUnreadMessagesCountChanged。
34)群主能更改吗? 近来还不可以,但他日会大增那些接口。
35)图片压缩比用户能调整么?
可以的,那一个是iOS的回落方法setCompressionQuality。 36)环信里面
android和ios 里面 message的扩展字段是通用的吧? 是的。
37)iOS和安卓都用的百度地图呢? 安卓是百度地图,iOS是苹果自己的地图。
38)手机端加了个音信免扰攘成效,当webim
和手机端都登陆时得以透过那几个作用设置手机是不是接受音讯么?
不能够,免纷扰只是安装推送免侵扰。
39)做了个测试,先用一个有线电话发了成百上千音信,然后用另一个有线电话登那几个账号时,发现赢得的聊天记录唯有2条,而且仍旧此前该账号在该手机上发的?
新闻记录保留到当地了,所以换个手机看不到。 40)不是给各类用户分配100m,
超越100M的数目能赢得吗? 超越100M新的记录会顶掉老的记录。 41)环信
SDK帮衬模拟器吗?仍旧必须求用真机来测试?
辅助,但是有些效益只可以真机测试,比如推送,摄像等。 42)IOS
中如何取得某个聊天组中的成员列表? 用
didFetchGroupOccupantsList方法得到。
43)环信那边语音能无法像微信那样:靠近耳朵的时候就听筒,远离耳朵的时候就扬声器播放啊?可以,要在-
(void)proximitySensorChanged:(BOOL)isCloseToUser方法中装置。
44)能如故不能够查看离线信息? 无法,只可以查看离线音信未读数。
45)读取临时会话列表的主意,有的对象里username 是null,这是干什么?
成立会话的时候,是索要chatter 那几个目标,chatter不可能为null
,可以去打印下chatter,判断是或不是为空。
46)想删除客户端本地聊天记录,如何做? 那是去除聊天记录的艺术(参考): 
-(NSUInteger)removeConversationsByChatters:(NSArray*)chattersdeleteMessages:(BOOL)aDeleteMessages。
47)后台公司管理员可以转移吗?
后台公司管理员不能直接删除,邮箱也不得以平素改动,但是足以用新的邮箱再添加一个管理,然后把旧的管理员从这么些org下移除掉。
48)上传图片后,再次来到的路子无法下载图片,什么来头?
为了安全,下载进程中还要参与其余参数。不是只透过url就能下载的。须求参数(share-secret)。49)NSArray
*buddyList = [[EaseMob sharedInstance].chatManager buddyList]; 
获取到的都是空的,什么来头?
“这几个是取内存值,要赢得detail,要去服务器获取,或者安装sdk自动获取。  //
登录成功后,自动去取好友列表// SDK获取为止后,会回调
复制代码12[[EaseMob sharedInstance].chatManager
asyncFetchBuddyListWithCompletion:^(NSArray *buddyList, EMError
*error) {  } onQueue:nil]”50)图文混排怎么落实?
自定义的将图片,username以及想要呈现的任何情节(通过扩大属性message.ext)一块突显到UI上。
51)播放语音的时候,传感器打开了,可是语音播放完后,传感器还地处打开状态,曾几何时关闭的?
还要加上开启和关闭距离感应。 52)demo总是不弹出键盘,如何做?
弹出键盘的急迅键是Command +
k(可以百度下xcode6的模仿器弹出键盘的办法)。
53)IOS使用环信的demo举行扩充开发,上传后被拒
,说是后台播放音乐的原由,那怎么办?
能够考虑去掉声音,若是要兑现当地通告播放声音,再去调用localNotification的default
sound就足以了。 54)一个群ID不可能作为一个第三者ID? 不能。
55)音信存到db里面去了  NSArray *chats = [weakSelf.conversation
loadNumbersOfMessages:(currentCount + KPageCount)
before:beforeTime];为啥没有拿出来吧?
那有依照时间和数据来分别收获的。打印一下数码。有时候来新新闻了,取的如故是后有些条,数据就会难堪了。这么些api是没难题的。db可以取到表明已经存了多少。可能是跟取到的数额和时间有提到。
56)cmd音信,跟聊天的消息,不设有争辩么?
普通信息回调的措施跟这一个不同,所以不争辨,普通聊天得接受形式didReceiveMessage,cmd音讯的收取方式didReceiveCmdMessage。
57)服务器再次来到登录失利,提醒:logInfalse(null),error
已登录,请先调用logOff 。那是何等原因? 正在登陆的时候又发起了登陆请求。
58)聊天列表是当地保存的要么从服务器上得到的?
聊天列表都是保留在地头了,是sdk自动保存的。服务器上也有存聊天记录,不过客户端不可以取服务器上得聊天记录。聊天记录在沙盒里,地点在/library/easemobDB
里面。
59)在哪修改环信logo(CFBundleDisplayName),假如是安卓要在何处改?
在InfoPlist.string
文件中改变CFBundleDisplayName;安卓中要在SplashAcitivity里面修改。
60)自动登录的回调会调用五回?
程序进入的时候调四遍,会调用它的三个主意,willAutoLogin和didAtuoLogin。
61)环信的那多少个.a文件之中是还是不是有pjsip生成的库文件呢?
有的,不过还不曾揭暴露来。 62)iOS发送音信时,收到EMErrorServer提姆eout
发送新闻超时的报错。 网络情况卓越,可能还有其余什么来头导致?
假设是有时的报错,是有可能的。因为客户端的互连网本来就是一个不平稳的弱互联网。用户看着感觉网络是地道的,但其实会有各个临时中断。
63)语新闻息播报之后,未读标识消失,可是关掉页面,再一次进入,还有未读提醒,那么些是还是不是是个bug?
那几个是通过扩充属性来判断的,播放之后,就修改掉,再一回跻身的时候,按照那几个值来判断是还是不是播放过。
64)能够兑现每条推送新闻的昵称都自定义么?
环信下一步会协理自定义推送信息模板。每个app可以有投机一定的模板。但依照备注来推送,这些估摸扶助起来是有诸多不便的。还没想好怎么接济。
65)接收本地通告的时候,布告音讯前边突显的是环信id而不是nickname,如何做?
“NSString *title = message.from;        if (message.isGroup) {         
  NSArray *groupArray = [[EaseMob sharedInstance].chatManager
groupList];            for (EMGroup *group in groupArray) {           
    if ([group.groupId isEqualToString:message.conversationChatter])
{                    title = [NSString stringWithFormat:@””%@(%@)””,
message.groupSenderName, group.groupSubject];                   
break;                }            }        } NSString *title =
message.from中得到那一个title
再去团结的服务器请求nickname,再显示到UI上。” 66) * Terminating app
due to uncaught exception ‘NSInvalidArgumentException’, reason:
‘-[XMPPManager networkChangedToNone]: unrecognized selector sent to
instance 0x15db1ef0′ 然后就崩溃了?
这几个报错,一般是用到了环信2.1.3本子里的SDKLite包,后边的2.1.3r3版本有修复,遭受类似的标题,升级到2.1.3r3本子就足以缓解了
67)环信ios的push, inhouse类型的app支持呢?
inhouse应该是指店铺证书的,那些sdk不关心,只要推送证书对应配套就足以推送。
68)点击播放语音的时候,一向突显正在下载,这一个怎么解决?(message.downloading奥迪o)
解决办法是发送方不做判定,点击之后直接播放,只在接收方做判定。
69)logininfo有时候为空,是怎么回事? 没有登陆。
70)删除好友后,好友如故存在于好友列表中,这是为啥?
要先消除缓存,再刷新列表。
71)在报到失利的气象下,依然举办任何操作,会合世什么样提醒信息?
会提示互连网错误。 72)发送的音信内容在bubbleView上的何地啊?
EMChatTextBubbleView里面。 73)问下ios
自动重连不须求代码设置吗?只需求不难地监督一下吗? 自动重连不必要设置。
74)为何添加好友用户搜索任何字符都足以搜寻到啊?
demo没有界定,搜什么都得以搜到,开发者可以协调设定一下。
75)环信是尚未提供好友申请列表的接口,必要做当地数据保存是吗?
好友申请未处理,重启app服务器会再度给发过来。
76)使用环信sdk录制的语音是怎样编码格式的?
现在的本子,音频部分已经从SDK中退出出来了,SDK已经不做拍卖了,全部放到UI上供开发者自行处理了。可是录的时候是wmv,转换成amr传过去,接收时再更换过来。
77)消息记录保留的法则?
sdk会保存所有音信,重启app获取的信息记录都是在缓存中的,要调用从db总得到音信记录的措施,加到缓存中,才能呈现出来。
78)环信有木有可以获得具有未读音讯的接口?
有获得未读信息数的接口,不可以博得到所有的未读音信内容。
79)用户是比照环信的正式配备的, demo在xcode5.1上边也抱错?
Xcode5现行不让提交项目了,必须用Xcode6运行。
80)ios推送可以自己设置Apns突显内容吗?
可以的,现在环信已经支撑自定义推送内容了,可以支撑:1、不出示详情:“alert”:“您有一条新音讯”
2、展现详情:“alert”:“ApnsName:XXXXX”
3、自定义。能够参照下环信的连锁自定义推送部分的文档。
81)突显详情那里,ApnsName为空时 前面的冒号能不可能去掉?
环信如今已扶助自定义推送内容。 82)ios推送字符长度有没有限定?
跟寻常新闻无异于,30kb以内。别的,自定义的字段可以整个出示。
83)好友申请可以发推送音信么?
好友申请新闻不可能推送,好友申请未处理,下次报到的时候服务器会发放用户。
84)集成了环信最新的ios sdk的口音通话作用更新的时候被拒了,因为用户那边须求后台通话的机能的
,所以在工程安装中的后台打开了voico over ip,不过苹果不认账那样做?
不用开这一个。或者和苹果解释下,说用到的地点。 85)狠抓时语音的时候调用-
(EMCallSession *)asyncCallAudioWithChatter:(NSString *)chatter
timeout:(NSUInteger)timeout error:(EMError
**)pError;这些函数,报那些破绽百出-[EMCallManager
asyncCallAudioWithChatter:timeout:error:]: unrecognized selector sent
to instance 0x7bea96e0(崩了)是何等来头? 借使用语音实时通话,
就导libEaseMobClientSDK.a那个库就足以了(不可以导2个库)。
86)环信新闻推送,是地面推送,仍然长途推送?
ios长连接没断开是本地公告,断开了走apns。 87)iOS 文件在殡葬之后, 
对方的接收到音讯后, 对应的公文local路径是指什么?
那么些时候文件是还是不是曾经存到对方沙盒内了呢?
对方接受到的时缩略图,原件要求点击查阅,才能下载原件。
88)环信为何平昔不@作用?将来有没有协理的安顿?
有。但是还没排期。这些一定也要做的,是个通用要求。
89)iOS环信音讯下载后的文本无后缀,请问还亟需怎样处理啊?
不需求,发送的是怎么样,下载的就是怎么。
90)服务端先发送的文书音讯,然后ios端再发文本音信。收到的新闻顺序是先接到ios端的然后在才接过服务端的。
后台发,这几个理应发送效能难题,排序是安分守己信息接收时间。 91)勾选奥迪(Audi)o and
AirPlay后,上传App被AppStore拒绝。
不勾选这些,然后在本地推送里设置本地推送提醒音。
92)直接通过app自己的服务器去登录环信,登录成功之后无法促膝交谈是怎么回事?
必须经过客户端sdk登录才能聊天,客户端跟服务器之间没有长连接无法促膝交谈。
93)环信SDK哪些数据做了地面储存的?群组列表也是存了的?加好友、参与群组之类的文告呢?im都存了,其他的都亟待开发者自己处理。群组列表不是流行的,只是会报给,这些最好仍然开发者自己存。加好友、参预群组之类的打招呼sdk不存,ui存了。
94)头像在哪些类里面安装? EMChatViewBaseCell。
95)IOS,唯有退出登录,才总算不在线,对么?
ios不在前台,就是不在线。但要注意进入到后台3分钟后才不在线,因为ios系统会在进入后台3分钟后,把利用的连天杀死。
96)近期不协助群聊语音电话? 近来是语音单聊。 97)安卓和ios
录音的格式分别是如何?
安卓是amr格式,wav格式。iOS5原先有肯定的表达,不协理amr直接播放。之后就向来不驾驭说明了。应该是也不帮助。iossdk中
发送: wav->amr;  接收:amr – >
wav,用libopencore这一个库转的。此外,现在iOS端的语音部分已经全体从SDK剥离出来了,全体置于UI上供开发者自行处理。
98)为何获得不到群组的owner?
获取与自己有关的群组的时候只得看到群组ID,和群组名称,唯有调用群详情的主意才能见到,调用群详情的法门,能来看描述和owner。
99)报错:imported from module ‘UIKit…’怎样改?
没有导入UIKit,#import100)一个新闻发送败北后,使用asyncSendMessage重新发送,音讯的timestamp怎么翻新?
重新发送信息,是用的以前的时间,qq处理的也是用的从前的时刻,sdk内部处理的时刻。
101)ios的导航栏的颜色在哪改? [[UINavigationBar appearance]
setBarTintColor:RGBACOLOR(78, 188, 211, 1)];
102)iOS要兑现一个群聊不播放提示音或者震动,只好开发者自己完成??如故像android那样有照应的接口?
不播放,就是不调用震动和拍子就行了,要协调已毕。
103)rest接口即使调用次数过大会报什么错? “会回到:503  (服务不可用)
服务器近年来不可能使用(由于超载或停机维护)。 平时,那只是暂时状态。”
104)[self setupUIDemoDB] 那些是必须的呢?
不是。这些是demo中用到的第三方DB,存的是忘年交申请这一类的信息。不提议使用,可以协调写一个DB举行仓储
105)在模拟器上登陆的时候会报那几个错误,是怎么回事?
应该是用户名多敲了空格。
105)三个客户端,不过却是分化的施用,为了落实两岸的通讯,用了第四个的appkey,用户也都是在率先个app下报了名的,不过出于推送证书要绑定app,所以第三个没有推送,请问怎么解决?
可以上传多套证书,三个应用之间通讯只要保障是同一个appkey 就行,
倘使是推送的话 ,要力保项目中的证书名称跟上传来后台的讲明名称相同。
106)IOS删除所有聊天记录的法子是哪个? 复制代码123456789101112/*!
@method @brief 删除所有会话对象 @discussion @param aDeleteMessages
是还是不是删除这些会话对象所涉嫌的谈天记录 @param append2Chat   
是或不是加到内存中。        YES为加到内存中。加到内存中之后,
会有相应的回调被触发从而更新UI;       
NO为不加到内存中。如若不加到内存中, 则只会一直抬高进DB,
不会有SDK的回调函数被触发从而去更新UI。 @result 是还是不是中标实践 */-
(BOOL)removeAllConversationsWithDeleteMessages:(BOOL)aDeleteMessages   
                               
append2Chat:(BOOL)append2Chat。107)用户发过来的语音讯息,那边听过后,黄点(未读标识)不毁灭,
是怎么回事? “全局搜一下prepareMessage奥迪(Audi)oModel那几个函数
还有modelWithMessage,把 [[EaseMob sharedInstance].chatManager
insertMessageToDB:chatMessage];
换成[chatMessage?updateMessageExtToDB];” 108)[NSConcreteData
AES256Decrypt]: unrecognized selector sent to instance XXX,如何做?
other link flags 设置-ObjC 注意分寸写。 109)framework not found Metal
for architecture armv7s 要求升级到xcode6。 110)SDK太大了,如何做?
SDK大不影响打包成ipa,打包出ipa安装包后,一般只会增多2MB左右。
111)SDK是还是不是协助64位? 帮衬。 112)无法吸纳聊天信息?
“接收聊天等回调,要留心以下几步骤:
1、申明落成IChatManagerDelegate,如: @interface
EaseMobSDKAccountManager ()2、注册当前类接收回调 [[EaseMob
sharedInstance].chatManager addDelegate:self delegateQueue:nil];
3、达成对应回调方法,如: //
收新闻的回调_x000D_-(void)didReceiveMessage:(EMMessage
*)message{_x000D__x000D_}” 113)一条音讯收到多次,为啥?
“一般是由本类很多次登记了回调导致,请确定以下办法只举办了一回 [[EaseMob
sharedInstance].chatManager addDelegate:self delegateQueue:nil];
并且在类析构时注销回调 -(void)dealloc{  [[EaseMob
sharedInstance].chatManager removeDelegate:self];  ”
114)无法收到好友请求,如何是好?
请确定接受好友请求的类是或不是开首化,并声称了IChatManagerDelegate,完成了注册回调和回调方法。
115)APP后台时不可以吸收推送,如何做?
环信将notification分为二种,一种是本地文告,一种是apns。当您后台时,长连接还设有,会走didReceiveMessage方法,须求你自己维护当地公告(即LocalNotification)。
116)APP彻底关闭,无法收到推送? “用户可以经过以下几步检验自己的推送
1.第一要求用户上传APNS推送证书到环信管理后台。
2.在环信iOSSDK初阶化时填写用户自己的注脚名称。 3.注册推送。
4.真机登录环信im账号。
5.查看管理后长沙,对应im账户下是还是不是有用户刚刚写的证书名。(如若没有,请检查是或不是收获了deviceToken)
6.确定用户眼前注解是不是和温馨的序列匹配。(开发证书与生育证书需求种种对应)”
117)环信 pod 下面的SDK是最新么? “通过Cocoapods下载地址
不含有实时语音版本SDK(EaseMobClientSDKLite),引用时
#importpod’EaseMobSDK’, :git =>

包蕴实时语音版本SDK(EaseMobClientSDK),引用时 #importpod
‘EaseMobSDKFull’, :git =>
””

概述

什么叫推送?
普通话名称:推送
英文名称:push
定义:

    描述因特网内容提供者和因特网用户之间工作方式的术语。“推送”指因特网内容提供者定期向预订用户“提供”数据。

出于该APP下载量比较大,考虑到要推送给所有下载app的用户,所以那里就不可以用针对于单个用户展开推送了,必须针对使用群体进行推送。场景如下:

118)注册deviceToken回调现身error,注册推送败北errorCode = 3000?

推送平台有怎么样

品种中有可能会用到推送。假使自己写一个的话,可是个耗时耗力的时,好在广大第三方公司都提供了推送服务,比如百度云。我们得以在友好的顺序中行使它。

时下常用盛名的推送平台有:

  • 信鸽,腾讯出品
  • 百度云推送, 百度出品
  • 友盟
  • 极光推送
  • 华为新闻推送服务
  • 个推
  • MoPush

4858.com 1

那是布署有难点,还从未到环信。一般是profile文件难点,或者表明没有打开推送作用。
类似那几个时候报的errorCode,能够百度解决,

百度云推送

云推送(Push)是百度开放云向开发者提供的音讯推送服务;通过行使云端与客户端之间成立稳定、可看重的长连接来为开发者提供向客户端应用推送实时消息服务。

百度云推送服务支撑推送三连串型的音讯:布告、透传信息及富媒体;辅助向具有用户或依照标签分类向特定用户群体推送信息;援救更加多自定义功能(如自定义内容、后续行为、样式模板等);提供用户新闻及公告新闻总结新闻,方便开发者进行持续开发及运营。

百度hi官方技术探讨群:1405944 QQ群:242190646,那里可以得到点扶持。

 

119)为何设置EMPushNotificationOptions重回error 是nil,设置也窘迫?

云推送服务具有以下特征:

  1. 加强用户粘性
    经过云和端之间确立的长连接,可以实时的推送音信到达用户端。保持与用户的关联,大大升级用户活跃度和留存率。

  2. 节省本钱
    在省电省流量上面远超行业水平,基础的音信推送服务永久免费,大大节省开发者推送的本钱。

  3. 平安安全的推送
    强劲的分布式集群长时间为百度各大出品线提供推送服务,有限援救音讯推送服务的安定团结、可相信。

 文档中给到的php例子是其一:

EMPushNotificationOptions设置要求在你得到deviceToken成功后才能设置。请先确定deviceToken获取没难题。

百度推送

百度云推送分两局地:web端和手机端。

我们利用web端作为后台管理,管理推送的新闻,推送的群落等,使用百度提供的web端sdk开发大家的推送管理,当然也足以应用百度推送提供的后台管理
手机端提供了android的开发包,大家需求在android中装置推送和启动推送,以接到推送到的信息

百度推送支持自定义信息标题,描述,其余自定义内容。

<?php
//消息推送Demo
header("Content-Type: text/html; charset=utf-8");
require_once(dirname(__FILE__) . '/' . 'IGt.Push.php');
define('APPKEY','请输入您的APPKEY');
define('APPID','请输入您的APPID');
define('MASTERSECRET','请输入您的MASTERSECRET');
define('HOST','http://sdk.open.api.igexin.com/apiex.htm');
define('CID','请输入您的CID');
pushMessageToApp();
function pushMessageToApp(){
    $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
    $template = IGtLinkTemplateDemo();
    //个推信息体
    //基于应用消息体
    $message = new IGtAppMessage();
    $message->set_isOffline(true);
    $message->set_offlineExpireTime(10 * 60 * 1000);//离线时间单位为毫秒,例,两个小时离线为3600*1000*2
    $message->set_data($template);

    $appIdList=array(APPID);
    $phoneTypeList=array('ANDROID');
    $provinceList=array('浙江');
    $tagList=array('haha');

    $cdt = new AppConditions();
    $cdt->addCondition(AppConditions::PHONE_TYPE, $phoneTypeList);
    $cdt->addCondition(AppConditions::REGION, $provinceList);
    $cdt->addCondition(AppConditions::TAG, $tagList);

    $message->set_appIdList($appIdList);
    $message->set_conditions($cdt);

    $rep = $igt->pushMessageToApp($message);

    var_dump($rep);
    echo ("<br><br>");
}

function IGtLinkTemplateDemo(){
    $template =  new IGtLinkTemplate();
    $template ->set_appId(APPID);//应用appid
    $template ->set_appkey(APPKEY);//应用appkey
    $template ->set_title("请输入通知标题");//通知栏标题
    $template ->set_text("请输入通知内容");//通知栏内容
    $template ->set_logo("");//通知栏logo
    $template ->set_isRing(true);//是否响铃
    $template ->set_isVibrate(true);//是否震动
    $template ->set_isClearable(true);//通知栏是否可清除
    $template ->set_url("http://www.getui.com/");//打开连接地址
    //$template->set_notifyStyle(0);
    //$template->set_duration(BEGINTIME,ENDTIME); //设置ANDROID客户端在此时间区间内展示消息
    //iOS推送需要设置的pushInfo字段
//        $apn = new IGtAPNPayload();
//        $apn->alertMsg = "alertMsg";
//        $apn->badge = 11;
//        $apn->actionLocKey = "启动";
//    //        $apn->category = "ACTIONABLE";
//    //        $apn->contentAvailable = 1;
//        $apn->locKey = "请输入通知栏内容";
//        $apn->title = "请输入通知栏标题";
//        $apn->titleLocArgs = array("titleLocArgs");
//        $apn->titleLocKey = "请输入通知栏标题";
//        $apn->body = "body";
//        $apn->customMsg = array("payload"=>"payload");
//        $apn->launchImage = "launchImage";
//        $apn->locArgs = array("locArgs");
//
//        $apn->sound=("test1.wav");;
//        $template->set_apnInfo($apn);
    return $template;
}
?>

120)为何提交的APNS昵称和动用证书名后台看不到?

Android端咋做

1.挂号百度账户
2.投入 百度开发者
3.创建应用
4.下载sdk
5.导入sdk包,开发应用
6.在AndroidManifest.xml 中注册响应的receiver
7.在主窗体的oncreate中写

    PushManager.startWork(getApplicationContext(),
                    PushConstants.LOGIN_TYPE_API_KEY, 
                    PushServiceUtils.getMetaValue(this, "api_key"));

8.编辑自己的receiver。处理
绑定的连锁音信,推送的新闻,公告栏点击后的信息

    public class MyPushMessageReceiver extends BroadcastReceiver {

        private static final String TAG = "BroadcastReceiver";

        @Override
        public void onReceive(final Context context, Intent intent) {

            Log.d(TAG, ">>> Receive intent: \r\n" + intent);

            if (intent.getAction().equals(PushConstants.ACTION_MESSAGE)) {
                // 获取消息内容
                String message = intent.getExtras().getString(
                        PushConstants.EXTRA_PUSH_MESSAGE_STRING);

                // 消息的用户自定义内容读取方式
                Log.i(TAG, "onMessage: " + message);

                // 自定义内容的json串
                Log.d(TAG,
                        "EXTRA_EXTRA = "
                                + intent.getStringExtra(PushConstants.EXTRA_EXTRA));

                // 用户在此自定义处理消息,以下代码为demo界面展示用
                Intent responseIntent = null;
                responseIntent = new Intent(PushServiceUtils.ACTION_MESSAGE);
                responseIntent.putExtra(PushServiceUtils.EXTRA_MESSAGE, message);
                responseIntent.setClass(context, MainActivity.class);
                responseIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(responseIntent);

            } else if (intent.getAction().equals(PushConstants.ACTION_RECEIVE)) {
                // 处理绑定等方法的返回数据
                // PushManager.startWork()的返回值通过PushConstants.METHOD_BIND得到

                // 获取方法
                final String method = intent
                        .getStringExtra(PushConstants.EXTRA_METHOD);
                // 方法返回错误码。若绑定返回错误(非0),则应用将不能正常接收消息。
                // 绑定失败的原因有多种,如网络原因,或access token过期。
                // 请不要在出错时进行简单的startWork调用,这有可能导致死循环。
                // 可以通过限制重试次数,或者在其他时机重新调用来解决。
                int errorCode = intent.getIntExtra(PushConstants.EXTRA_ERROR_CODE,
                        PushConstants.ERROR_SUCCESS);
                String content = "";
                if (intent.getByteArrayExtra(PushConstants.EXTRA_CONTENT) != null) {
                    // 返回内容
                    content = new String(
                            intent.getByteArrayExtra(PushConstants.EXTRA_CONTENT));
                }

                // 用户在此自定义处理消息,以下代码为demo界面展示用
                Log.d(TAG, "onMessage: method : " + method);
                Log.d(TAG, "onMessage: result : " + errorCode);
                Log.d(TAG, "onMessage: content : " + content);
                Toast.makeText(
                        context,
                        "method : " + method + "\n result: " + errorCode
                                + "\n content = " + content, Toast.LENGTH_SHORT)
                        .show();

                Intent responseIntent = null;
                responseIntent = new Intent(PushServiceUtils.ACTION_RESPONSE);
                responseIntent.putExtra(PushServiceUtils.RESPONSE_METHOD, method);
                responseIntent.putExtra(PushServiceUtils.RESPONSE_ERRCODE,
                        errorCode);
                responseIntent.putExtra(PushServiceUtils.RESPONSE_CONTENT, content);
                responseIntent.setClass(context, MainActivity.class);
                responseIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(responseIntent);

                // 可选。通知用户点击事件处理
            } else if (intent.getAction().equals(
                    PushConstants.ACTION_RECEIVER_NOTIFICATION_CLICK)) {
                Log.d(TAG, "intent=" + intent.toUri(0));

                // 自定义内容的json串
                String customData = intent
                        .getStringExtra(PushConstants.EXTRA_EXTRA);

                Log.d(TAG,
                        "EXTRA_EXTRA = "
                                + intent.getStringExtra(PushConstants.EXTRA_EXTRA));

                if (customData == null || "".equals(customData)) {
                    return;
                }

                Intent aIntent = new Intent();
                aIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                aIntent.setClass(
                        context,
                        com.pdwy.wulianwang.mobile.main.notification.NotificationDetails_Activity.class);
                String title = intent
                        .getStringExtra(PushConstants.EXTRA_NOTIFICATION_TITLE);
                aIntent.putExtra(PushConstants.EXTRA_NOTIFICATION_TITLE, title);
                String content = intent
                        .getStringExtra(PushConstants.EXTRA_NOTIFICATION_CONTENT);
                aIntent.putExtra(PushConstants.EXTRA_NOTIFICATION_CONTENT, content);

                String detailContent = "";
                try {
                    org.json.JSONObject json = new JSONObject(customData);
                    detailContent = json.getString("detailContent");
                } catch (JSONException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                // 保存在数据库
                NotifyDao dao = new NotifyDao();
                int notifyId = dao.saveNotify(title, content, detailContent);
                // 向消息详细页发送内容
                aIntent.putExtra("notify_id", notifyId);

                context.startActivity(aIntent);

            }
        }
    }

接下来下载sdk,下载地址:

那五个也是需求用户确定了deviceToken正确获取后才得以。

web端需求做什么样

1.手无寸铁项目
2.下载sdk,引入包 bccs-api-lib-1.0.jar
3.编纂代码

    /*
     * @brief 推送单播通知(Android Push SDK拦截并解析) message_type = 1 (默认为0)
     */

    // 1. 设置developer平台的ApiKey/SecretKey
    String apiKey = "xxxxxxxxxxxxxxxxxx";
    String secretKey = "xxxxxxxxxxxxx";
    ChannelKeyPair pair = new ChannelKeyPair(apiKey, secretKey);

    // 2. 创建BaiduChannelClient对象实例
    BaiduChannelClient channelClient = new BaiduChannelClient(pair);

    // 3. 若要了解交互细节,请注册YunLogHandler类
    channelClient.setChannelLogHandler(new YunLogHandler() {
        @Override
        public void onHandle(YunLogEvent event) {
            System.out.println(event.getMessage());
        }
    });

    try {

        // 4. 创建请求类对象
        PushBroadcastMessageRequest request = new PushBroadcastMessageRequest();
        request.setDeviceType(3); // device_type => 1: web 2: pc 3:android
                                    // 4:ios 5:wp

        // request.setMessage("Hello Channel");
        // 若要通知,
        request.setMessageType(1);
        request.setMessage("{\"title\":\"Notify_title_danbo\",\"description\":\"Notify_description_content\"}");
        //request.setMessage(notify.toString());

        // 5. 调用pushMessage接口
        PushBroadcastMessageResponse response = channelClient
                .pushBroadcastMessage(request);

        // 6. 认证推送成功
        System.out.println("push amount : " + response.getSuccessAmount());

    } catch (ChannelClientException e) {
        // 处理客户端错误异常
        e.printStackTrace();
    } catch (ChannelServerException e) {
        // 处理服务端错误异常
        System.out.println(String.format(
                "request_id: %d, error_code: %d, error_message: %s",
                e.getRequestId(), e.getErrorCode(), e.getErrorMsg()));
    }

然后看自己要好达成流程:

121)项目中是否足以用任何推送,和环信推送是不是有争持?

当自身在后台对某一条音信进行推送的时候
利用ajax传过来音信标题和内容,在控制器中用一个措施去接受:

尚无争辨。

//手机推送
    public function pushPhone()
    {
        $this->base();
        if ($this->token == 2) {
            return '';
        }
        $list_id = Request::instance()->param('list_id');
        $list_title = Request::instance()->param('list_title');
        $info = new geTui();//实例化个推类
        $listId = [
            'type' => 'list',
            'value' => $list_id,
            'title' => '消息标题',
            'content' => $list_title,//消息内容
        ];
        $res = $info->pushMessageToApp($listId);/调用推送类

        if ($res['result'] == 'ok') {
            return ['code' => '1', 'msg' => '推送成功!'];
        } else {
            return ['code' => '0', 'msg' => '推送失败!'];
        }
    }

122)是否能够用环信推广告之类的其他音讯?

看一下以此geTui类存放地方以及代码:

环信的推送首要为IM服务,倘若有那一个需求,提出开发者用专用的推送服务。

本身把下载的sdk放在extend文件夹下了。

123)后台上传证书彰显卓殊,怎么做?

4858.com 2

那些一般是因为证书制作进度不对,或者密码输入有难题,密码为开发者导出证书时设置的密码。

接下来重新创制了一个名为geTui的php文件

124)证书不安装密码是或不是可用?

<?php
namespace app\push;
use think\Loader;

class GeTui
{
    private $host = 'http://sdk.open.api.igexin.com/apiex.htm';

    //测试
    private $appkey = '';
    private $appid = '';
    private $mastersecret = '';

    //群推接口案例
    function pushMessageToApp($mes,$listId){
        import('getui.IGt', '', '.Push.php');
        $igt = new \IGeTui($this->host, $this->appkey, $this->mastersecret);
        $template = $this->IGtTransmissionTemplateDemos($mes,$listId);
        //$template = IGtLinkTemplateDemo();
        //个推信息体
        //基于应用消息体
        Loader::import('getui\igetui\IGT.AppMessage', EXTEND_PATH);
        $message = new \IGtAppMessage();
        $message->set_isOffline(true);
        $message->set_offlineExpireTime(10 * 60 * 1000);//离线时间单位为毫秒,例,两个小时离线为3600*1000*2
        $message->set_data($template);

        $appIdList=array($this -> appid);
        $phoneTypeList=array('ANDROID');//忽略了
        $provinceList=array('浙江');//这个也忽略了
        $tagList=array('haha');
        //用户属性
        //$age = array("0000", "0010");


        //$cdt = new AppConditions();
        // $cdt->addCondition(AppConditions::PHONE_TYPE, $phoneTypeList);
        // $cdt->addCondition(AppConditions::REGION, $provinceList);
        //$cdt->addCondition(AppConditions::TAG, $tagList);
        //$cdt->addCondition("age", $age);

        $message->set_appIdList($appIdList);
        //$message->set_conditions($cdt->getCondition());

        $rep = $igt->pushMessageToApp($message);

        return $rep;
    }

//所有推送接口均支持四个消息模板,依次为通知弹框下载模板,通知链接模板,通知透传模板,透传模板
//注:IOS离线推送需通过APN进行转发,需填写pushInfo字段,目前仅不支持通知弹框下载功能

    function IGtTransmissionTemplateDemos($mes,$listId){
        import('getui.IGt', '', '.Push.php');//引入sdk文件
        $template =  new \IGtTransmissionTemplate();
        $template->set_appId($this -> appid);//应用appid
        $template->set_appkey($this->appkey);//应用appkey
        $template->set_transmissionType(2);//透传消息类型
        $template->set_transmissionContent(json_encode($listId));//透传内容

        //APN高级推送
        Loader::import('getui\igetui\IGT.APNPayload', EXTEND_PATH);
        $apn = new \IGtAPNPayload();
        $alertmsg=new \DictionaryAlertMsg();
        $alertmsg->body=$mes['content'];
        $alertmsg->actionLocKey="查看";
        $alertmsg->locKey=$listId['content'];
        $alertmsg->locArgs=array("locargs");
        $alertmsg->launchImage="launchimage";
//        IOS8.2 支持
        $alertmsg->title=$mes['title'];
        $alertmsg->titleLocKey="电力头条";
        $alertmsg->titleLocArgs=array("TitleLocArg");

        $apn->alertMsg=$alertmsg;
        $apn->badge=1;
        $apn->sound="";
        $apn->add_customMsg("payload","payload");
        $apn->contentAvailable=1;
        $apn->category="ACTIONABLE";
        $template->set_apnInfo($apn);

        //PushApn老方式传参
//    $template = new IGtAPNTemplate();
//          $template->set_pushInfo("", 10, "", "com.gexin.ios.silence", "", "", "", "");

        return $template;
    }

}

此时此刻要求必须安装密码。

好了,假若前端(android和ios)都以及做好选取处理的话,应该是没难点的了,该案例应用场景于所以下载app的客户,包括注册和未注册的,若是是本着于所有以及登记的用户进行推送的话
指出采取对单个用户展开推送信息。

125)项目要提交了,想测下,如何操作?

 

包裹时利用ad-hoc格局,可以打包出一个release版本的ipa,用那个测试即可。

正文属原创内容,为了强调外人劳动,转发请评释本文地址:

126)借使开发者想按home键后当即接到推送,怎么着处理?

http://www.cnblogs.com/luokakale/p/9047032.html

因为那些时候用户仍旧长连接中,可以监听didReceiveMessage方法,之后开发者自己完成localNotification。

127)IOS做退出登录有请求超时的题材。

剥离登陆时,真机时把isUnbind这么些特性设为YES,
解除device_token绑定,若是出现退出解绑败北的情况,可能是一贯不互连网。

128)群音讯ios登录用户发群音讯,android的记名用户收不到是哪些来头?

拍卖办法:请提供下发送双方的log日志,和那几个app的appkey,token,以及丢得新闻的id,工作人员会展开排查。

129)把appkey下的装有用户所有设置成免纷扰。有相关接口么?

不安装推送证书,假如设置了,删掉即可。

130)环信的SDK在xcode7上能用么?

此时此刻的新颖版本2.2.0曾经支撑。

131)自动登陆的情形怎么着时候设置为no,唯有退出登陆才设置吗?

退出的时候自动就改成no了。

132)聊天室中头像和昵称的收获,现在有如何方案吧?

和群聊的头像昵称方案是一模一样的,能够参考:

133)1.  2.1.9本子的sdk.a包会有与fmpeg
冲突的情形,这几个要怎么处理啊?2.他们用到了这一个

若是用到了环信的实时语音库,同时也应用了其余第三方的库,就会争辨。

134)发实时语音 iOS 不走apns?

眼前还不帮衬,现在实时语音是透过P2P直连或者Server relay。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有