精华内容
下载资源
问答
  • 云信

    2018-07-03 17:58:34
    云信sdk > 监听图片发送进度,可获取百分比 NIMClient.getService(MsgServiceObserve.class).observeAttachmentProgress(new Observer<...

    云信sdk
    sdk文档

    > 监听图片发送进度,可获取百分比

      NIMClient.getService(MsgServiceObserve.class).observeAttachmentProgress(new Observer<AttachmentProgress>() {
                            @Override
                            public void onEvent(AttachmentProgress attachmentProgress) {
                                long total = attachmentProgress.getTotal();
                                long transferred = attachmentProgress.getTransferred();
                                int percentInt = NumberUtils.percentInt(attachmentProgress.getTotal(), attachmentProgress.getTransferred());
                            }
                        }, true);

    接收消息

     NIMClient.getService(MsgServiceObserve.class).observeReceiveMessage(new Observer<List<IMMessage>>() {
                @Override
                public void onEvent(List<IMMessage> imMessages) {
                    toChat(imMessages);
                }
            }, true);

    监听消息发送进度

       NIMClient.getService(MsgServiceObserve.class).observeMsgStatus(new Observer<IMMessage>() {
                @Override
                public void onEvent(IMMessage imMessage) {
                    switch (imMessage.getAttachStatus()){
                        case transferring://发送中
                        case transferred://发送完成
                        case def://默认状态,未开始
                        case fail://发送失败
                    }
                }
            }, true);

    发文字

     //发文字
        private void senMsg(String msg) {
            IMMessage imMessage = MessageBuilder.createTextMessage(toId, SessionTypeEnum.P2P, msg);
            imMessage.setRemoteExtension(getHeaders());
            NIMClient.getService(MsgService.class).sendMessage(imMessage, false);
        }

    发图片

      //发图片
        private void sendPic(String path) {
            File file = new File(path);
            IMMessage imMessage = MessageBuilder.createImageMessage(toId, SessionTypeEnum.P2P, file, file.getName());
            imMessage.setAttachStatus(AttachStatusEnum.transferring);
            imMessage.setRemoteExtension(getHeaders());
             NIMClient.getService(MsgService.class).sendMessage(imMessage, false);
        }
    

    发语音

     private void sendVoice() {
            File file = new File(voicePath);
            IMMessage imMessage = MessageBuilder.createAudioMessage(toId, SessionTypeEnum.P2P, file, voiceTime);
            imMessage.setRemoteExtension(getHeaders());
             NIMClient.getService(MsgService.class).sendMessage(imMessage, false);
        }

    消息置为已读

    //接收消息状态全为sucess,语音默认sucess为未读,播放读取后,可手动置为read状态,更新到消息记录
       chat.setStatus(MsgStatusEnum.read);
        NIMClient.getService(MsgService.class).updateIMMessageStatus(chat); //置为已读

    获取托管信息

     NimUserInfo userInfo = NIMClient.getService(UserService.class).getUserInfo(sessionId);
            if (userInfo == null) {
                ArrayList<String> accounts = new ArrayList<>();
                accounts.add(sessionId);
                NIMClient.getService(UserService.class).fetchUserInfo(accounts).setCallback(new RequestCallback<List<NimUserInfo>>() {
                    @Override
                    public void onSuccess(List<NimUserInfo> nimUserInfos) {
                        userInfo = nimUserInfos.get(0);
                    }
    
                    @Override
                    public void onFailed(int i) {
    
                    }
    
                    @Override
                    public void onException(Throwable throwable) {
    
                    }
                });
            }
    
    

    会话列表中移除指定会话

    • 需要传入一个最近联系人参数,android没有ios直接创建会话来获取联系的方法。①可以通话发送本地消息来生成一个会话,然后本地数据库删除消息(比较麻烦,性能好)②根据好友来循环遍历最近会话列表(较省事,性能消耗)
     NIMClient.getService(MsgService.class).deleteRecentContact(RecentContact recent);
    

    拨打音频

    常见状态码

    • -1:未通话时调用挂断方法,或者多次调用挂断方法
    • 9:正忙,一般上一次通话还未结束
    • 1000:登录成功之前,调用SDK相关接口
    • 11001:对方不在线
    • 9102 :通道失败
     /**
         * 主叫方拨打音视频
         */
        private void outGoingCalling(String account, final AVChatType callTypeEnum) {
            AVChatNotifyOption notifyOption = new AVChatNotifyOption();
            //附加字段
            notifyOption.extendMessage = "extra_data";
            notifyOption.forceKeepCalling = false;
            //打开Rtc模块
            AVChatManager.getInstance().enableRtc();
            //如果是视频,打开相关操作
            if (isVideo) {
                smalRender.setVisibility(View.VISIBLE);
                bigRender.setVisibility(View.VISIBLE);
                //打开视频模块
                AVChatManager.getInstance().enableVideo();
                //创建视频采集模块并且设置到系统中
                avChatCameraCapturer = AVChatVideoCapturerFactory.createCameraCapturer();
                AVChatManager.getInstance().setupVideoCapturer(avChatCameraCapturer);
                //开始视频预览
                AVChatManager.getInstance().startVideoPreview();
                //设置本地显示
                AVChatManager.getInstance().setupLocalVideoRender(bigRender, false, 1);
            }
            //设置铃声
            player.play(AVChatSoundPlayer.RingerTypeEnum.CONNECTING);
    
            //开始呼叫
            AVChatManager.getInstance().call2(account, callTypeEnum, notifyOption, new AVChatCallback<AVChatData>() {
                @Override
                public void onSuccess(AVChatData data) {
    //                ToastUtils.Toast(ChatCallActivity.this, "发起会话成功");
                    AVChatProfile.getInstance().setAVChatting(true);
                    //设置铃声
                    player.play(AVChatSoundPlayer.RingerTypeEnum.RING);
                    avChatData = data;
                    //发起会话成功
                }
    
                @Override
                public void onFailed(int code) {//11001 通话不可达,对方离线状态   9103 已经在他端对这个呼叫响应过了  9102    通道失效
                    switch (code) {
                        case 11001:
                            ToastUtils.showToast("对方不在线...");
                            break;
                        case 9:
                            ToastUtils.showToast("对象正忙...");
                            callEndFinish();//结束停止呼叫状态
                            break;
                        default:
                            ToastUtils.showToast("发起会话异常...");
                            callEndFinish();
                            break;
                    }
                }
    
                @Override
                public void onException(Throwable exception) {
                    ToastUtils.showToast("发起会话异常...");
                    callEndFinish();
                }
            });
        }
    展开全文
  • 云信测试demo

    2018-04-27 23:27:55
    云信的app NIM_Android_Demo_v4.5.0.apk
  • 网易云信demo

    2017-01-17 10:08:13
    网易云信官方demo 网易短信接口 网易聊天室等接口
  • 云信基础

    2019-07-08 22:03:15
    云信基础 一. 使用Uikit简单集成云信通讯 1.初始化 在 Application 中,在初始化云信 SDK 之后,初始化UIKit: NimUIKit.init(context); 初始化示例: public class NimApplication extends Application { ...

    云信基础
    一. 使用Uikit简单集成云信通讯
    1.初始化
    在 Application 中,在初始化云信 SDK 之后,初始化UIKit:
    NimUIKit.init(context);

           初始化示例:
            public class NimApplication extends Application {
    
             public void onCreate() {
                 	 // 初始化云信SDK
                NIMClient.init(this, loginInfo(), options());
    
                 if (inMainProcess()) {
                     // 在主进程中初始化UI组件,判断所属进程方法请参见demo源码。
                         initUiKit();
                 }
             	 }
    
                  private void initUiKit() {
    
                    	 // 初始化
                      NimUIKit.init(this);
    
                NimUIKit.setLocationProvider(new NimDemoLocationProvider());
    
         // 会话窗口的定制: 示例代码可详见demo源码中的SessionHelper类。
         // 1.注册自定义消息附件解析器(可选)
         // 2.注册各种扩展消息类型的显示ViewHolder(可选)
         // 3.设置会话中点击事件响应处理(一般需要)
              SessionHelper.init();
    
           // 通讯录列表定制:示例代码可详见demo源码中的ContactHelper类。
          // 1.定制通讯录列表中点击事响应处理(一般需要,UIKit 提供默认实现为点击进入聊天界面)
            ContactHelper.init();
    
    // 在线状态定制初始化。
        NimUIKit.setOnlineStateContentProvider(new DemoOnlineStateContentProvider());
    }
    

    2.登陆
    public static AbortableFuture login(LoginInfo loginInfo, final RequestCallback callback);

    实例代码:

    loginRequest = NimUIKit.login(new LoginInfo(account, token), new RequestCallback() {
    @Override
    public void onSuccess(LoginInfo param) {
    LogUtil.i(TAG, “login success”);

        onLoginDone();
    
        DemoCache.setAccount(account);
        saveLoginInfo(account, token);
    
        // 初始化消息提醒配置
        initNotificationConfig();
    
        // 进入主界面
        MainActivity.start(LoginActivity.this, null);
        finish();
    }
    
    @Override
    public void onFailed(int code) {
        onLoginDone();
        if (code == 302 || code == 404) {
            Toast.makeText(LoginActivity.this, R.string.login_failed, Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(LoginActivity.this, "登录失败: " + code, Toast.LENGTH_SHORT).show();
        }
    }
    
    @Override
    public void onException(Throwable exception) {
        Toast.makeText(LoginActivity.this, R.string.login_exception, Toast.LENGTH_LONG).show();
        onLoginDone();
    }
    

    });

    3.单聊

    NimUIKit.startP2PSession(context, account);
    // 打开单聊界面,跳转到指定消息位置
    //直接实现聊天界面
    NimUIKit.startP2PSession(context, account, anchor);

    4.群聊
    // 打开群聊界面
    NimUIKit.startTeamSession(context, teamId);
    // 打开群里界面,跳转到指定消息位置
    NimUIKit.startTeamSession(context, teamId, anchor);

    展开全文
  • 云信登录发送消息

    2016-11-30 03:16:45
    云信IM接受发送消息
  • 网易云信接口代码

    2017-06-06 11:18:11
    适用于thinkphp的网易云信的接口
  • 云信理财UI设计源码

    2020-08-14 00:36:15
    为您提供云信理财UI设计源码下载, 云信理财UI设计源码是一款理财产品软件的UI设计,无实际功能.投资资讯按钮可以点击进去。也实现了购买和付款的界面。登录界面UI设计的很标准。输入任意帐号密码以后点击登录既可...
  • 服务端 API 文档一键登陆服务端API文档接口概述API调用说明本文档中,所有调用网易云信服务端接口的请求都需要按此规则校验。API checksum校验以下参数需要放在Http Request Header中参数参数说明AppKey开发者平台...

    一键登录 >

    服务端 API 文档

    一键登陆服务端API文档

    接口概述

    API调用说明

    本文档中,所有调用网易云信服务端接口的请求都需要按此规则校验。

    API checksum校验

    以下参数需要放在Http Request Header中

    参数

    参数说明

    AppKey

    开发者平台分配的appkey

    Nonce

    随机数(最大长度128个字符)

    CurTime

    当前UTC时间戳,从1970年1月1日0点0 分0 秒开始到现在的秒数(String)

    CheckSum

    SHA1(AppSecret + Nonce + CurTime),三个参数拼接的字符串,进行SHA1哈希计算,转化成16进制字符(String,小写)

    CheckSum有效期:出于安全性考虑,每个checkSum的有效期为5分钟(用CurTime计算),建议每次请求都生成新的checkSum,同时请确认发起请求的服务器是与标准时间同步的,比如有NTP服务。

    CheckSum检验失败时会返回414错误码,具体参看code状态表。

    重要提示: 本文档中提供的所有接口均面向开发者服务器端调用,用于计算CheckSum的AppSecret开发者应妥善保管,可在应用的服务器端存储和使用,但不应存储或传递到客户端,也不应在网页等前端代码中嵌入。

    计算CheckSum的java代码举例如下 ( 其他语言示例见下方接口示例) :

    import java.security.MessageDigest;

    public class CheckSumBuilder {

    // 计算并获取CheckSum

    public static String getCheckSum(String appSecret, String nonce, String curTime){

    return encode("sha1", appSecret + nonce + curTime);

    }

    // 计算并获取md5值

    public static String getMD5(String requestBody){

    return encode("md5", requestBody);

    }

    private static String encode(String algorithm, String value){

    if (value == null) {

    return null;

    }

    try {

    MessageDigest messageDigest

    = MessageDigest.getInstance(algorithm);

    messageDigest.update(value.getBytes());

    return getFormattedText(messageDigest.digest());

    } catch (Exception e) {

    throw new RuntimeException(e);

    }

    }

    private static String getFormattedText(byte[] bytes){

    int len = bytes.length;

    StringBuilder buf = new StringBuilder(len * 2);

    for (int j = 0; j < len; j++) {

    buf.append(HEX_DIGITS[(bytes[j] >> 4) & 0x0f]);

    buf.append(HEX_DIGITS[bytes[j] & 0x0f]);

    }

    return buf.toString();

    }

    private static final char[] HEX_DIGITS = { '0', '1', '2', '3', '4', '5',

    '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };

    }

    接口说明

    IM服务端所有接口都只支持POST请求;

    所有接口请求Content-Type类型为:application/x-www-form-urlencoded;charset=utf-8;

    所有接口返回类型为JSON,同时进行UTF-8编码。

    接口示例

    网易云信服务端接口是简单的http接口,适配各种语言。 当然我们也提供了一些简单的示例供开发者参考。网易云信服务器接口示例。

    一键登陆

    获取手机号码

    请求说明

    POST https://api.netease.im/phoneauth/login/getMobile HTTP/1.1

    Content-Type:application/x-www-form-urlencoded;charset=utf-8

    接口描述

    获取手机号码。

    参数说明

    参数类型必须说明

    certnameString是用户证书名称

    tokenString是运营商令牌

    curl请求示例

    curl -X POST -H "AppKey: go9dnk49bkd9jd9vmel1kglw0803mgq3" -H "CurTime: 1443592222" -H "CheckSum: 9e9db3b6c9abb2e1962cf3e6f7316fcc55583f86" -H "Nonce: 4tgggergigwow323t23t" -H "Content-Type: application/x-www-form-urlencoded" -d 'certname=xxxxxxxx&token=xxxxx' 'https://api.netease.im/phoneauth/login/getMobile'

    返回说明

    http 响应:json

    "Content-Type": "application/json; charset=utf-8"

    {

    "code": 200,

    "mobilePhone": "1F881288CC68352FC410E8D4A36FC6E0" // 加密手机号码

    }

    主要返回码

    200、403、414、416、431、500

    本篇文档内容是否对您有帮助?

    05ad636b7b9697960eedc9e50e63bbcd.png有帮助

    d7ecb2ab3f00c13b80e89321fbce0571.png我要吐槽

    如果遇到产品相关问题,您可 提交工单 或 在线客服 寻求帮助。

    您的改进建议

    ×

    问题类型

    内容错误

    内容没更新

    描述不清

    链接有误

    步骤不完整

    内容缺失(缺少代码/示例)

    其他

    更多建议

    请输入您的建议或问题(至少5个字符,至多500个字符)

    联系方式

    标记内容

    同时提交标记内容

    提交

    此文档对你是否有帮助

    ×

    05ad636b7b9697960eedc9e50e63bbcd.png有帮助

    d7ecb2ab3f00c13b80e89321fbce0571.png我要吐槽

    ×

    反馈成功

    9a8a09827f580aa78fba55c9bd5bd9d6.png非常感谢您的反馈,我们会继续努力做得更好。

    展开全文
  • 云信短信模板

    2020-05-20 16:12:47
    云信官网: http://www.sms.cn/sms_api.html#item2 栗子: package com.hwqh.huawenstockuser.utils.sms; /** * @ClassName: Sms * @version: 1.0 * @description: 云信 * @author: zhaonian * @create: 2020-...

    云信官网:

    http://www.sms.cn/sms_api.html#item2
    

    栗子:

    /**
     * @ClassName: Sms
     * @version: 1.0
     * @description: 云信
     * @author: zhaonian
     **/
    import com.alibaba.fastjson.JSONObject;
    import com.google.gson.Gson;
    import com.hwqh.huawenstockuser.common.ConstantUtil;
    import com.hwqh.huawenstockuser.utils.http.HttpRequestUtil;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.net.URL;
    import java.net.URLConnection;
    import java.util.List;
    import java.util.Map;
    
    /**
     * 最新短信接口
     */
    public class Sms {
        private static Logger logger = LoggerFactory.getLogger(Sms.class);
        //在注册的用户名
        public static final String uid = "注册名";
        //在注册的密码
        public static final String pwd = "注册密码";
        //在注册的密码
        public static final String ac = "send";
        //url
        public static final String httpUrl = "http://api.sms.cn/sms/?";
    
    
        public static void main(String[] args) throws Exception {
    
            String s = sendSms("手机号", "模板号码", "验证码");
            System.out.println(s);
    
    
        }
        /**
         * 登录发送短信验证码
         * @param mobile
         * @param template
         * @param code
         * @return
         * @throws Exception
         */
        public static String sendSms(String mobile, String template, String code) throws Exception {
            StringBuffer httpArg = new StringBuffer();
            httpArg.append(httpUrl);
            httpArg.append("ac=").append(ac).append("&");
            httpArg.append("uid=").append(uid).append("&");
            httpArg.append("pwd=").append(pwd).append("&");
            httpArg.append("template=").append(template).append("&");
            httpArg.append("mobile=").append(mobile).append("&");
            httpArg.append("content=");
            httpArg.append("{\"code\":\"" + code + "\"}");
            String s1 = HttpRequestUtil.sendGet(httpArg.toString());
            JSONObject jo = JSONObject.parseObject(s1);
            String stat = jo.getString("stat");
            return stat;
        }
    
        /**
         * 向指定URL发送GET方法的请求
         *
         * @param url
         *            发送请求的URL
         * @param param
         *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
         * @return URL 所代表远程资源的响应结果
         */
        public static String sendGet(String url) {
            String result = "";
            StringBuilder jsonStr = new StringBuilder();
            BufferedReader in = null;
            try {
                String urlNameString = url;
                URL realUrl = new URL(urlNameString);
                // 打开和URL之间的连接
                URLConnection connection = realUrl.openConnection();
                // 设置通用的请求属性
                connection.setRequestProperty("accept", "*/*");
                connection.setRequestProperty("connection", "Keep-Alive");
                connection.setRequestProperty("user-agent",
                        "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
                // 建立实际的连接
                connection.connect();
                // 获取所有响应头字段
                Map<String, List<String>> map = connection.getHeaderFields();
                // 遍历所有的响应头字段
                for (String key : map.keySet()) {
                    logger.info(key + "--->" + map.get(key));
                }
    
                //ConstantUtil.UTF_CODE 编码格式
                InputStreamReader reader = new InputStreamReader(connection.getInputStream(), ConstantUtil.UTF_CODE);
                char[] buff = new char[1024];
                int length = 0;
                while ((length = reader.read(buff)) != -1) {
                    result = new String(buff, 0, length);
                    jsonStr.append(result);
                }
    
    
                Gson gson = new Gson();
                Map temp  = gson.fromJson("", Map.class);
    
            } catch (Exception e) {
                logger.info("发送GET请求出现异常!" + e);
                e.printStackTrace();
            }
            // 使用finally块来关闭输入流
            finally {
                try {
                    if (in != null) {
                        in.close();
                    }
                } catch (Exception e2) {
                    e2.printStackTrace();
                }
            }
            return jsonStr.toString();
        }
    
    
    }
    
    展开全文
  • react-native-chat-demo 网易云信IM示例
  • 网易云信官方phpapi

    2017-06-06 11:39:34
    网易云信的官方api,里面有详细的demo,简单粗暴,网易出品,果然精品
  • 本文将简单地介绍配置 Android Studio 运行云信 Demo 的流程,同时提供一些常见问题的解答。 正文 安装 Android Studio 可直接在官网进行下载,若存在连接问题,可选择国内网盘下载 官网下载 | 百度网盘 提取码: 2...
  • 网易云信IM即时通信服务端实现,主要配合前端实现创建群组,加入群聊,获取用户信息等等功能。代码简单易懂,所有实现都是以测试Main函数测试运行的,方便给入门的伙伴们一些参考
  • 在项目开始的时候,聊天第三方sdk选择了网易云信,原因很简单,我们的竞争对手用的就是云信,所以老板要求也用这个sdk,在接入云信sdk后,遇到了一些问题,现在记录一下。1 根据我们项目的需求,我们创建了一个活动...
  • 网易云信IM讲解

    千次阅读 2019-04-08 08:55:58
    网易云信H5地址下载 1 demo下载 首先下载当前当前demo,并本地运行,由于网易云信提供的是采用的是node中间件的模式,所以你如果直接运行 npm run dev 是运行的打包命令,你需要运行 npm run server,来运行他当前...
  • 网易云信Android端高级技术架构师周江华大家好,我是来自网易云信的周江华,从2009年毕业至今,我一直在从事IM客户端的研发工作,最早是Windows客户端开发,直至2011年开始转向移动端,先是iOS,到2012年开始进行...
  • 网易云信webserver:网易云信后台web服务;网易云信imserver:SDK直连的IM服务。注:网易云信IM账号:以下文档中也称为“用户帐号”,参数名用“accid”或”account“等表示。token:网易云信IM账号的密码。创建 IM ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,613
精华内容 1,445
关键字:

云信