专业新媒体云服务商

400电话 400-963-9063
帮助列表
帮助列表
TIS-Android API

TIS Android 文档

1.Android SDK获取

下载TIS-Android版对应的SDK aar或jar包 同时注册获取TIS服务所需的accessId 和 accessKey用于Android开发
accessId  =""
accessKey = ""
导入aar或jar包最为lib库文件到您所需要的Android工程中

2.Android SDK API说明

TISApi使用说明:
初始化TISApi:
1.TISApi api = new TISApi()   //创建TISApi服务对象
2.api.InitTIS(Context context, String accessId, String accessKey, String sInstanceId)  //初始化TIS服务
//context actvity或application的上下文;
//ccessId:RSA加密的accessId,
//accessKey: RSA加密的accessKey,
//sInstanceId: 用户的实例ID
3.api.RegisterTISCallback(TISCallback callback)  //注册TIS服务的回调

//可选设置接口
1).public void SetUseName(String name)  //设置用户昵称
2).public void SetUserClientId(String clientId)  //设置用户的clientId GUID
3).public void SetUserImage(String imageUrl) //设置用户头像
4).public void SetClientId(String sClientId) //设置用户clientId 唯一标识符
//发送消息接口
public void SendMessage(String userId,long timestamp,int version,String to,String text,String extension,String extra)
//参数说明: 
//useId :用户的实例ID 必填
//timestamp: 消息发送时间戳 必填
//version: 版本号 默认1 必填
//to:接收者的clientId ""代表向所有人发送 目前只支持向所有人发送 必填
//text:消息内容 必填 
//extension:额外内容 可选
//extra:只对html开发有用 用于javascript回调函数表 原生开发设为空

3.TISCallback回调说明

public interface TISCallback
{
void OnGroupMessage(int TAG,String message,String extra); //分组操作回调(功能还未对用户开放)

void OnMSGMessage(int TAG,String message,String extra);  //消息操作回调
//消息回调格式:
content:
{
    "instId": "72a8c28552fa1619c643eab674f3462d",
    "time": 1453183724160,
    "content": "{\"cmd\":\"tismsg\",\"v\":1,\"from\":\"tis- 2f71c00f41339ec9ac269e347989ab65\",\"name\":\"%E5%8C%BF%E5%90%8D\",\"to\":\"\",\"body\":\"123\",\"image\":\"https://cdn.aodianyun.com/tis/ui/default/img/anonymous.png\",\"time\":1454297312,\"extra\":null}"
}    
注意:content必须是以上那样的格式,每个字段的解释如下:
{
    "cmd":"tismsg",                                 //命令,固定为: tismsg
    "v":1,                                          //版本号
    "from":"tis-2f71c00f41339ec9ac269e347989ab65",  //发送者的clientId
    "name":decodeURL("匿名"),                       //发送者名称,需要经过decodeURL
    "to":"",                            //发送目标的clientId,""表示发送给所有人,目前只支持发送给所有人。
    "body":decodeURL("1"),                          //发送的内容,需要经过decodeURL
    "image":"https://cdn.aodianyun.com/tis/ui/default/img/anonymous.png", //发送者头像
    "time":1453168978,                              //发送时间
    "extra":null                                    //额外数据,如果有也需要经过decodeURL
}
void OnFaceMessage(int TAG,String message,String extra); //表情操作回调(功能还未对用户开放)

void OnServiceMessage(int TAG,String message,String extra); //消息推送服务回调
}

//说明: TAG 表示回调的标记; message 回调结果的具体信息;extra 回调的额外内容,目前用于javascript页面回调
TAG 标记说明:
1. TISApi.GET_HISTORY_MESSAGE_RESULT:  获取历史消息的结果
2. TISApi.GET_HISTORY_MESSAGE_ERROR: 获取历史消息失败
3. TISApi.ADD_MESSAGE_RESULT:  发送消息成功
4. TISApi.ADD_MESSAGE_ERROR:  发送消息失败

5. TISApi.SERVICE_MESSAGE_ARRIVED:获得消息推送
6. TISApi.SERVICE_CONN_LOST: 消息推送服务连接丢失
7. TISApi.SERVICE_CONN_SUCCESS: 消息推送服务连接成功
8. TISApi.SERVICE_CONN_FAILURE: 消息推送服务连接失败
9. TISApi.SERVICE_SUBSCRIBE_SUCCESS: 消息推送订阅成功
10. TISApi.SERVICE_SUBSCRIBE_FAILURE: 消息推送订阅失败

SDK下载链接:

TIS-Android


4.Android嵌入html开发说明

本地代码

1.TISWebView 继承自WebView 以使用html功能

2.TISWebView 使用:
public void Init(TisApi api)  //引入 TISApi

TISWebView.getSettings().setJavaScriptEnabled(true)  //允许js 进行本地代码调用

TISWebView.setWebContentsDebuggingEnabled(true)  //允许 chrome浏览器和android App进行联调 (此功能只在Android 4.4及以上版本才起作用)

public void RegisterJSFunction()  //java代码注入至js
{      
   this.addJavascriptInterface(Object obj, String name)
} 

3.回调至javascript
protected void JSGetHistory(String key,String message){} //获取历史消息返回给javascript

protected void JSOnMessageArrived(String message){}  //将推送获取的消息返回至javascript

protected void JSSendMessage(String key,String message){} //将发送消息的结果返回至javascript

javascript代码(实现部分在app的assets文件夹中,名为test.html)

//
var Callback_Map{}   //函数回调表

Callback_Map 关键字 key 的生成:
var key = new Date().getTime() + "_" + Math.floor(Math.random() *(1000 +1))

function API(){} //javascript API对象

var opt_  //全局变量 保存API
function InitService() //初始化TISApi服务
//Javascript端的API函数
API.prototype.getHistoty = function(option){
	//javascript获取历史消息
  ...
}
API.prototype.SendMessage = function(option){
  //javascript发送消息
  ...
}

//Java回调到Javascript的函数
window.__onHistoryArrived = function(key,message){ //历史消息回调
  ...
}
window.__onSendMessage = function(key,message){ //发送消息结果回调
  ...
}
window.__onMessageArrived = function(message){ //Java端推送过来的消息
  ...
}

以test.html中的 SendMessageTest为例:  //这个功能为Javascript发送消息代码
function SendMessageTest(sInstId_,time_,content_){
    if(!opt_.api){
            console.log("SendMessageTest api failure")
            return  
    }

    opt_.api.SendMessage({
            sInstId:sInstId_,  //
            time:time_,    //
            content:content_, //

            success:function(data){ //发送成功的回调函数
                console.log("SendMessageTest:success" + data);  
                if(data.FlagString){
                    console.log(data.FlagString);
                }
                if(data.Flag){
                    console.log(data.Flag);
                }
            },
            failure:function(info){ //发送失败后的回调函数
                console.log("SendMessageTest:failure" + data);  
        }
    });
}
这种方式便能获得java端回调返回的结果

5.Android原生开发说明(代码实现部分位于activity_native.java文件)

初始化TIS服务

step1
  TISApi api = new TISApi()   //创建TISApi服务对象
step2
  api.InitTIS(Context context, String accessId, String accessKey, String sInstanceId)  //初始化TIS服务
step3	
  api.RegisterTISCallback(TISCallback callback)  //注册TIS服务的回调
step4:
  LoadHistory()  //加载历史消息
step5:    
  InitWidget() //初始化聊天组件和显示消息组件
step6:
  initMessageInputToolBox() //注册聊天组件消息监听

聊天组件使用

private ListView mListView //用于展现TIS消息内容(默认的风格是类似微信的聊天记录风格)

private ChatKeyborad box //TIS聊天编辑及控制组件(包含默认表情包及用户自定义本地表情包和其他拓展功能)

private ListmData //TIS消息数据列表
  
private void initMessageInputToolBox() //初始化聊天组件的内容并添加事件监听

ChatAdapter说明:

ChatAdapter为展现TIS消息内容的适配器 

1.默认的展示风格类似于微信聊天的表现风格,用户本人发送的消息显示在屏幕右侧;
2.他人发送的消息则展示在左侧.
3.支持显示时间 用户头像及消息发送成功/失败/正在发送三种状态的显示.
4.支持类似微信的泡泡表情 泡泡表情的显示及背景由用户自定义.

ChatKeyboard说明:

 ChatKeyboard  包含四个控件 
 1.EditText  mEditMsg //聊天内容编辑
 2.Button    mBtFace  //表情按钮
 3.Button    mBtMore  //更多按钮
 4.Button    mbtSend  //发送消息按钮
 DEMO中未展示 mBtMore 的功能 可由用户自行添加
 
 public void setFaceData(Listfacedata)
 facedata中存放代表表情包的图片路径;代表表情包图片的格式支持 .png,.jpg,.jpeg
 表情包默认的folder文件夹名称为FACE_FOLDER_PATH 亦可由用户自定义 图片获取存储由用户自己实现

OnOperationListener说明:

public interface OnOperationListener{

void send(String content);  // nbtnSend发起了发送消息的动作

void selectedFace(Faceicon content) ;//选择了自定义表情

void selectedEmoji(Emojicon emoji); //选择了默认表情图标

void selectedBackSpace(Emojicon back) ;//选择了后退的表情

void selectedFunction(int index);//执行动作 
}

Layout文件说明:

  layout_chat_box.xml    //ChatKeyboard的布局文件
  layout_frag_face.xml   //表情的fragment布局文件
  chat_item_emoji.xml    //emoji表情单元布局文件
  chat_item_face.xml     //face表情的单元布局文件
  chat_item_list_left    //位于左侧的消息记录
  chat_item_list_right   //位于右侧的消息记录
  chat_item_menu         //更多功能对应的菜单布局文件

UrlUtils

TIS聊天服务默认的表情包的路径在 UrlUtils中 TIS_DEFAULT_FACE_ROUTE,用户可根据自身的需求使用
  public static void setTISFaceRoute(final String route) 来进行设置

支持的文件格式亦可由用户自定义设置 通过调用函数 
  public static void setTISImageSuffix(final String suffx)进行设置
  

 Demo工程下载链接:

Demo工程下载链接:

Android-Demo

注意:Android端manifest清单文件需要添加 <service android:name="org.eclipse.paho.android.service.MqttService">

2006 - 2019 aodianyun.com, All Rights Reserved. 奥点科技 版权所有 增值电信业务经营许可证:浙B2-20110306 浙ICP备07500424号-7 |

在线咨询

在线QQ

售前咨询400-963-9063

售后服务400-963-9063

留言咨询
咨询留言 X
姓名
电话
QQ
提  交