![]()  | 
                            帮助列表 | 
                        
下载TIS-Android版对应的SDK aar或jar包 同时注册获取TIS服务所需的accessId 和 accessKey用于Android开发 accessId ="" accessKey = "" 导入aar或jar包最为lib库文件到您所需要的Android工程中
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回调函数表 原生开发设为空
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下载链接:
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//
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端回调返回的结果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为展现TIS消息内容的适配器 1.默认的展示风格类似于微信聊天的表现风格,用户本人发送的消息显示在屏幕右侧; 2.他人发送的消息则展示在左侧. 3.支持显示时间 用户头像及消息发送成功/失败/正在发送三种状态的显示. 4.支持类似微信的泡泡表情 泡泡表情的显示及背景由用户自定义.
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 亦可由用户自定义 图片获取存储由用户自己实现
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_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 //更多功能对应的菜单布局文件
TIS聊天服务默认的表情包的路径在 UrlUtils中 TIS_DEFAULT_FACE_ROUTE,用户可根据自身的需求使用 public static void setTISFaceRoute(final String route) 来进行设置 支持的文件格式亦可由用户自定义设置 通过调用函数 public static void setTISImageSuffix(final String suffx)进行设置 Demo工程下载链接:
注意:Android端manifest清单文件需要添加 <service android:name="org.eclipse.paho.android.service.MqttService">