融云即时通讯
程序员文章站
2022-07-13 14:51:51
...
本小白第一次接触融云,不知道怎么用,所以去看官方的demo,但是官方demo的内容太多了,而本小白只需要客服即可,加上看官方demo很多东西看不懂,所以就自己想办法了。
因为只需要客服,所以只需要集成IMKit和IMLib即可,详细信息官网有介绍,我这边就不废话了
一般来说,按照官方文档走肯定是没问题的,但是我还是遇到问题了。
从集成SDK到打开客服聊天界面,按照文档走都是没问题的,但是接下来,问题就来了
这是文档中打开客服聊天界面的方法:
这个方法是没有问题的,但是当调用这个方法之后,会发现不管怎么点,客服页面都不会跳出来,但是同时伴随着会有消息来的声音(前提是你的手机没有静音)
去看官方demo,会发现一个有趣的类ConversationActivity,这个类的注释是会话页面。这个类就是我们需要的来承载客服页面activity,官方demo写了很多东西,但是此时
我只需要一个客服页面就可以了,于是我发现,ConversationActivity只需要继承FragmentActivity就可以了,这点可以在官方的demo中很容易看出.
然后我在ConversationActivity中的代码也及其简单,我只在onCreate方法中写了一句代码,如下:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.conversation);
}
xml中的需要放一个fragment,如下:
<fragment
android:id="@+id/conversation"
android:name="io.rong.imkit.fragment.ConversationFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
接下来我觉得是最主要的一步,那就是要在manifest中加入如下代码,这个在融云demo中也可以找到
<!-- 会话界面 -->
<activity
android:name=".ConversationActivity"
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>
还有就是最后一点,其实我也没明白这是干嘛的,但是不加这句的话会出错(有谁明白这是啥意思的话,麻烦告诉我一下,本小白虚心请教):
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="项目包名.FileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/rc_file_path" />
</provider>
附:本小白是新手一枚,有出错的地方敬请大神指出,本小白不吝感激!