Unity—腾讯IM即时通讯SDK接入

  • 前言
  腾讯IM对Unity的支持很差,只提供接口返回数据,非常麻烦,然而安卓端使用Tuikt可以集成UI,自带安卓界面不需要写任何UI逻辑;
  所以选择将Unity工程导出成安卓工程,在AndroidStudio中接入Tuikit的sdk;
 
  • 准备工作
  对于刚刚接触sdk的新手,要配置好java环境,下载对应版本的sdk,ndk,jdk等;具体操作自行百度,很重要;
 
  • Unity端工作
  通过AndroidJavaClass和AndroidJavaObject类调用Java端写好的方法
  •  安卓端工作

  1.将Unity工程导出成安卓工程;

 

  2.下载官方sdk,将Android文件夹中tuikit文件夹整个拷贝到导出的安卓工程中;tuikit配置需求

  3.在setting.gradle中添加include ":tuikit" 点击同步(sync /小象);

  4.检查tuikit中gradle里sdk版本,修改成和项目gradle中版本一致;

  5.按官方文档添加布局文件layout.xml  res件夹右键add,xml,layout;

  6.创建需要的安卓activity类(界面),必须在UnityLibrary中AndroidManifest里注册Activity才能调用;

  7.在UnityPlayerActivity类OnCreate方法中,给instance赋值;

  8.在UnityPlayerActivity类OnCreate方法中,初始化IM;

  9.在UnityPlayerActivity类OnCreate方法中,绑定conversationList界面,并初始化隐藏;

  10.在UnityPlayerActivity类OnCreate方法中,给conversationlist界面中每个Item绑定点击事件;

  11.写静态单例方法,供unity端调用;

  12.写ShowUI方法,供unity端调用;

 

   13.写用户登录方法,供Unity调用

  • 坑点

  1.gradle properties中添加升级AndroidX问题,在gradle properties中添加;

  android.useAndroidX=true

  android.enableJetifier=true

  2.因为我只想使用ConversationList所以要隐藏掉一下多余的layout部件,比如标题,以及一个恶心的搜索框;
   title直接在OnCreate中隐藏;   
   搜索框需要找到Conversationlayout.java中layout.xml文件修改,改初始高度;
 
  3.缓存问题,每次退出再次打开IM,不再加载conversationlist列表,没找到问题所在,选择了暴力的清空存储list的文件夹,必须进去app时清空,退出时清空可能因为强退清空不彻底;清空时需要递归;
  
  
  
posted @ 2021-09-09 23:51  小紫苏  阅读(455)  评论(0编辑  收藏  举报