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

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

注意:

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

搭建app开发环境

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

注意:项目中 HBuilderx 目前使用的最新版本(2.8.13),如果此前下载过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(运行卡顿)