融云正在连接服务器
① 融云在android7.0为什么连不上服务器
可以用华为手机助手回退。回退过程会清除数据,建议在回退前将所有重要数据备份至SD卡、PC或云端,确认下备份内容是有效的哦。 回退步骤: 点桌面实用工具里的备份,新建备份,然后把重要数据备份到SD卡。 手机连接电脑USB。打开华为手机助手,点设置>应用>华为手机助手>权限,授予相应权限,然后点已授权。 在弹出框里点击同意按钮。点击系统更新。在弹出的系统更新界面点击切换到其他版本。点击恢复。等待进度条完成。 点击桌面备份图标,进入备份界面,找到备份记录,然后根据提示,恢复备份的重要数据。
② 融云 导入IMKIT和Toolkit 冲突如何解决
下载随后下载融云开发SDK地址在此Demo源码为官方提供的示例demo,无需修改,直接运行即可成功查看融云的相关功能SDk分为两部分:融云IM界面组件(imkitht)和融云IM通讯能力库(imlib)创建应用前往融云开发者平台创建一个应用,安卓端需要注意的地方有应用标识-PackageName此处为安卓项目的包名,如下面代码的包名即为io.rong.imkit.demoAppKey-AppKey此处为manifest文件中所需要声明的AppKey对应的值,开发阶段使用开发环境(测试环境),开发完成后应切换为生产环境(线上环境),简单的示例如下项目配置添加对APP_KEY的声明如使用imkit进行开发,将其所有android:host的值修改为开发应用的包名如使用AndroidStudio开发,记得添加对so文件的引用编写代码初始化,建议放在Application的onCreate放法中进行RongIM.init(this);得到Token,此处需要开发者Server端的支持,如果只是为了测试开发,可以前往融云开发者平台选择API调试-用户服务-获取Token进行调试开发连接融云器,得到Token后即可连接融云的服务器了//此处直接hardcode给token赋值,请替换为您自己的Token。Stringtoken="+==";//连接融云服务器。RongIM.connect(token,newRongIMClient.ConnectCallback(){@OverridepublicvoidonSuccess(Strings){//此处处理连接成功。Log.d("Connect:","Loginsuccessfully.");}@OverridepublicvoidonError(ErrorCodeerrorCode){//此处处理连接错误。Log.d("Connect:","Loginfailed.");}});当服务器连接成功后,即可调用融云的各类聊天接口了
③ 怎么使用融云IM的推送功能,融云推送API
为了接收推送消息,您需要自定义一个继承自 PushMessageReceiver 类的 BroadcastReceiver (必须实现,否则会收不到推送消息),实现其中的 onNotificationMessageArrived,onNotificationMessageClicked 然后把该 receiver 注册到 AndroidManifest.xml 文件中。
自定义的 BroadcastReceiver:
public class DemoNotificationReceiver extends PushMessageReceiver {
@Override
public boolean onNotificationMessageArrived(Context context, PushNotificationMessage message) {
return false;
}
@Override
public boolean onNotificationMessageClicked(Context context, PushNotificationMessage message) {
return false;
}
}
注册到应用的 AndroidManifest.xml 里面:
<receiver
android:exported="true"
android:name="您自定义的 broadcastReceiver 类名">
<intent-filter>
<action android:name="io.rong.push.intent.MESSAGE_ARRIVED" />
<action android:name="io.rong.push.intent.MI_MESSAGE_ARRIVED" />
<action android:name="io.rong.push.intent.MESSAGE_CLICKED" />
<action android:name="io.rong.push.intent.MI_MESSAGE_CLICKED" />
</intent-filter>
</receiver>
onNotificationMessageArrived 用来接收服务器发来的通知栏消息(消息到达客户端时触发),默认return false,通知消息会以融云 SDK 的默认形式展现。如果需要自定义通知栏的展示,在这里实现自己的通知栏展现代码,同时 return true 即可。
onNotificationMessageClicked 是在用户点击通知栏消息时触发 (注意:如果自定义了通知栏的展现,则不会触发),默认 return false 。如果需要自定义点击通知时的跳转,return true 即可。融云 SDK 默认跳转规则如下
只有一个联系人发来一条或者多条消息时,会通过 intent 隐式启动会话 activity,intent 的 uri 如下:
Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri.Builder builder = Uri.parse("rong://" + this.getPackageName()).buildUpon();
builder.appendPath("conversation").appendPath(type.getName())
.appendQueryParameter("targetId", targetId)
.appendQueryParameter("title", targetName);
uri = builder.build();
intent.setData(uri);
startActivity(intent);
如果你的 AndroidManifest.xml 里面配置 A activity 拦截了这个 intent ,那在点击这条通知栏消息 时就会启动 activity A 。
<activity
android:name="A"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="你的包名"
android:pathPrefix="/conversation/"
android:scheme="rong" />
</intent-filter>
</activity>
多个联系人发来多条消息时,通过 intent 隐式启动会话列表 activity,intent 的 uri 配置如下:
Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri.Builder builder = Uri.parse("rong://" + this.getPackageName()).buildUpon();
builder.appendPath("conversationlist");
Uri uri = builder.build();
intent.setData(uri);
startActivity(intent);
如果你的 AndroidManifest.xml 里面配置 B activity 拦截了这个 intent,那在点击这条通知栏消息 时就会启动 activity B。
<activity
android:name="B"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="你的包名"
android:path="/conversationlist"
android:scheme="rong" />
</intent-filter>
</activity>
可以在融云开发者后台广播推送-广播消息-推送中,发起远程推送。
点击推送消息时会触发出如下 action 事件:
Intent intent = new Intent();
intent.setFlags(intent.FLAG_ACTIVITY_NEW_TASK);
Uri.Builder uriBuilder = Uri.parse("rong://" + this.getPackageName()).buildUpon();
uriBuilder.appendPath("push_message")
.appendQueryParameter("targetId", targetId)
.appendQueryParameter("pushData", pushData)
.appendQueryParameter("pushId", pushId)
.appendQueryParameter("extra", extra);
startActivity(intent);
如果你的 AndroidManifest.xml 里面配置了 C activity 拦截这个 action, 那么点击时就会跳转到 activity C。
<activity
android:name="C"
android:launchMode="singleTask"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="你的包名"
android:pathPrefix="/push_message"
android:scheme="rong" />
</intent-filter>
</activity>
通过以上步骤,您已完成了融云推送服务的集成。
④ 如何正确的初始化 RongIM.init
载随载融云发SDK址Demo源码官提供示例demo需修改直接运行即功查看融云相关功能SDk两部:融云IM界面组件(imkitht)融云IM通讯能力库(imlib)创建应用前往融云发者平台创建应用安卓端需要注意应用标识-PackageName处安卓项目包名面代码包名即io.rong.imkit.demoAppKey-AppKey处manifest文件所需要声明AppKey应值发阶段使用发环境(测试环境)发完应切换产环境(线环境)简单示例项目配置添加APP_KEY声明使用imkit进行发其所android:host值修改发应用包名使用AndroidStudio发记添加so文件引用编写代码初始化建议放ApplicationonCreate放进行RongIM.init(this);Token处需要发者Server端支持测试发前往融云发者平台选择API调试-用户服务-获取Token进行调试发连接融云器Token即连接融云服务器//处直接hardcode给token赋值请替换您自TokenStringtoken="+==";//连接融云服务器RongIM.connect(token,newRongIMClient.ConnectCallback(){@OverridepublicvoidonSuccess(Strings){//处处理连接功Log.d("Connect:","Loginsuccessfully.");}@OverridepublicvoidonError(ErrorCodeerrorCode){//处处理连接错误Log.d("Connect:","Loginfailed.");}});服务器连接功即调用融云各类聊接口
⑤ 怎么看自己公司的emobile/emessage使用的融云还是私有云
前言:
emobile是单独部署的服务;emessage是整合在ecology中的,对应的服务器目录是WEAVER/ecology/social/ 。
但是除了熟知的emobile和ecology服务,如果要使用聊天功能,流程推送功能,则必须还有一个消息服务(或者说消息引擎)。
消息服务分为私有云和公有云(融云)。
正文:
很多客户不知道自己的emobile/emessage使用的是融云还是公有云。下面是区分方法(多种):
方法一: 在oa后台 -应用中心 -e-message- 消息服务配置中查看:
方法二: 如果服务器里有WEAVER/e-message目录,一般是私有云,因为私有云的文件夹就叫e-message; 反之,如果WEAVER/下没有e-message目录,则使用的是公有云。
注意点: 这种方法来判断比较简单,但是不绝对。比如有的客户把私有云单独放在某台服务器,所以OA服务器里没有e-message文件夹,误以为是使用公有云。 同样,有的客户安装了私有云,但是并没有使用,其实可能用的是公有云。
方法三: 直接在浏览器访问oa的 /mobile/plugin/CheckServer.jsp?type=serversetting 地址,如果返回值中有 openfireMole = true,表示 使用的是公有云。 如果为false,则为公有云。 (实际上这个和方法三是一样的,只不过开放了一个查询ecology/WEB-INF/prop/OpenfireMole.properties 的http接口)
方法四: 在服务器打开 WEAVER/ecology/WEB-INF/prop/OpenfireMole.properties, 查看Openfire项的配置
⑥ 融云会不会丢消息
不会丢消息 。是这样子的,在前台主进程在的时候就正常收取消息长连接。主进程挂了 比如 推出程序 就是 push进程在后台运行 来了消息 有push 消息通知 如果这两个情况都不满足 也不会丢消息 别人给你发了消息 这个时候消息在服务器 保存着, 等你下次再上的时候 connect会像融云服务器拉取,这个消息叫离线消息,总的来说 通过上述三种方式 可以确保不会丢包丢消息。我是融云的技术人员。
⑦ 融云连接服务器错误提示 talktoken获得到,connect之后,onError回调函数被调
https://developer.rongcloud.cn/ticket/info/ZSCnKpDqrOSrWCs3BQ==?type=1
https://developer.rongcloud.cn/ticket/info/NgZXuIi51et28eDNDQ==?type=1
融云官方的网站已经说的很明确了。。就是,网络连接的问题(应该是融云那边的事情),SDK会自动重连,开发者不需要做什么调整。
获取到token以后进行connect。基本上只要获取到token就可以进行聊天了,即使connect并没有onSuccess。如果为了以防万一可以加以判断,比如token没有获取到执行什么样的操作,onError执行什么操作之类的,这个取决于你的需求。
⑧ 融云平台是什么
如云平台是一种享受公共资源的一种服务性的社会平台,它具有融合各个企业单位的资金圆缺的作用