uni-app 打包原生 app(Android、IOS)方案简介

使用 环信小程序 SDK 在 HBuilderX 中编译 Android、iOS 应用,可实现一套代码多端同时打包。IM 相关的集成方式同 Web、小程序一样便捷、高效。

注意:

  • Demo 只包含部分 IM 功能,详细参考 功能说明
  • 支持账户注册登录
  • 支持 IM 基本功能收发文本、图片、语音、视频、音频、文件、透传、扩展消息等
  • 支持 群组聊天室功能
  • 支持个人设置

搭建 app 开发环境

1、下载 HBuilderx 编辑器 https://www.dcloud.io/hbuilderx.html

注意:项目中 HBuilderx 目前使用的最新版本,如果此前下载过 HBuilderx,为保证开发环境统一请更新到最新版本

2、DCloud 开发者中心注册 https://dev.dcloud.net.cn/

之后登陆 HBuilderx 编辑器。 至此 app 的开发环境差不多完成。

将 SDK 添加到自己的小程序

下载 SDK

可以通过以下两种方式获取 SDK:

引入SDK

  • 开始一个全新的项目
    1. 将 SDK 目录下(src/sdk/)的文件全部导入到自己的项目中。
    2. 直接使用 import/require 方式获取引用, 如果使用 mpvue 请保持引用文件方式的统一。

基于 Demo 二次开发

拉取代码,连接手机,打开手机开发者模式,连接手机授权传输文件,即可运行起来。

调用示例

//使用示例
import SDK from "../sdk/webimSDK3.x.x"; // 3.0sdk

实例调用方式

实例化 SDK,并挂载在全局对象下

//实例化 SDK 对象
const WebIM = wx.WebIM = SDK;
WebIM.conn = new WebIM.connection({
    isMultiLoginSessions: false, //是否可以登录多个,并在所有端上接收消息
    https: false, //是否使用 HTTPS 
    url: 'wss://im-api-wechat.easemob.com/websocket', // socket server (3.0 SDK)
    apiUrl: 'https://a1.easemob.com',    // rest server
    heartBeatWait: 30000, //心跳间隔
    autoReconnectNumMax: 2, //自动重连次数
    useOwnUploadFun: false // 是否使用自己的上传方式(如将图片文件等上传到自己的服务器,构建消息时只传url)
});

IM 基本功能,请参考 http://docs-im.easemob.com/im/web/basics/message

1、原生 App-云打包:HBuilder 编辑器 → 发行 → 原生 App-云打包 (app 图标,启动页等详细配置可在 manifest.json 进行配置)

2、原生 App-离线打包:HBuilder 编辑器 → 发行 → 生成本地打包 App 资源 (详细打包方案请看 iOS、Android 本地打包指南。)

Demo 在以下安卓机器中存在一定兼容性能问题:

  • 魅族魅蓝 E (无法运行)
  • 华为 p20(运行卡顿)