集成JS代码

NIM SDK 需要您通过手动下载 SDK, 然后添加到您的项目中。

下载SDK

引入SDK

SDK选择

SDK引入方式

<!-- 例如 -->
<script src="NIM_Web_SDK.js">
<script>
  var nim = SDK.NIM.getInstance({
    // ...
  })
</script>

SDK在工程中调用示例:

  // 使用示例
  import SDK from 'NIM_Web_SDK.js'
  const nim = SDK.NIM.getInstance({
    // ...
  })

相对应Webpack配置

  // Webpack 参考配置
  module: {
    rules: [
      {
        test: /\.js$/,
        loader: 'babel-loader',
        exclude: /NIM_Web_SDK.*\.js/,
        query: {
          presets: [
            // ...
          ],
          // ...
        }
        // ...
      },
      // ...
    ],
    // ...
  }

使用说明

实例调用方式

所有业务均通过 NIM SDK 单例调用

  // 引入SDK类的引用以后,获取SDK对象实例
  var nim = SDK.NIM.getInstance({
    // debug: true,
    appKey: 'appKey',
    account: 'account',
    token: 'token',
    // privateConf: {}, // 私有化部署方案所需的配置
    // ...
  })

以发送点对点消息为例:

  var msg = nim.sendText({
    scene: 'p2p',
    to: 'account',
    text: 'hello',
    done: function sendMsgDone (error, msg) {
      // ...
    }
  })

事件通知方式

SDK 通过两种方式通知上层 API 调用结果:回调(callback)和委托 (delegate),两种方式都只在主线程触发(为保证浏览器兼容性,没有使用web worker)。

  // 委托通知示例
  var nim = NIM.getInstance({
    // ... 此处省略其他配置
    onmsg: function (msg) {
      // 此处为委托消息事件,消息发送成功后,成功消息也在此处处理
    }
  })
  // 回调通知示例
  var msg = nim.sendText({
    scene: 'p2p',
    to: 'account',
    text: 'hello',
    done: function sendMsgDone (error, msg) {
      // 此处为回调消息事件,仅仅通知开发者,消息是否发送成功
    }
  })

浏览器兼容性

云信 Web SDK (不包含实时音视频)兼容到 IE9+ (5.0.0以下版本支持IE8)

数据库兼容性

是否支持数据库

// 通过此 `boolean` 值来查看 SDK 在某个浏览器上是否支持数据库
NIM.support.db

其原理是结合了JavaScript"鸭子类型"探测和UserAgent识别,做判断,所以非法改写的UserAgent可能会导致报错。

不使用数据库

如果开发者不想使用数据库, 那么可以设置初始化参数dbfalse来禁用数据库

var nim = NIM.getInstance({
    db: false
});