uni-app接入android原生环信客服(非IM)
uni-app接入android原生环信客服(非IM)
介绍
- 原因:最近用uni-app需要集成环信客服,直接webview加载环信H5版本的客服,在android上有问题,ios上能用。所以就接入了环信android原生的客服功能。
- 基本思路:综合时间、成本、效果等方面的考虑,决定把客服所有的功能由原生activity客服页面去实现,uni-app端只负责启动这个原生activity客服页面。
- 实现效果:基于环信客服访客端demo集成,支持文字、语音、表情、拍照、图片、视频、文件,进入客服页面时可设置访客信息、发送订单或者轨迹消息。
![http://docs.easemob.com/cs/start]
github地址 (给个star吧)
更多关于uni-app接入android原生环信客服(非IM)的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于uni-app接入android原生环信客服(非IM)的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在将uni-app接入Android原生环信客服(非IM)时,我们需要通过uni-app的插件机制来实现原生功能的调用。以下是一个简化的步骤和代码示例,展示如何在uni-app中集成Android原生环信客服SDK。
步骤一:准备环信客服SDK
首先,确保你已经从环信官网下载并集成了Android原生环信客服SDK到你的Android项目中。环信客服SDK通常包含一些必要的类和资源文件,你需要按照环信提供的文档进行集成。
步骤二:创建uni-app插件
在HBuilderX中,创建一个新的原生插件项目。这个插件将负责调用Android原生环信客服SDK。
1. 插件目录结构
uni-plugins/
└── my-easemob-customer-service/
├── AndroidManifest.xml
├── plugin.json
└── src/
└── main/
├── java/
│ └── com/
│ └── yourcompany/
│ └── myeasemobcustomerservice/
│ ├── MyEasemobCustomerService.java
└── res/
2. plugin.json
在plugin.json
中定义插件的基本信息和需要暴露给uni-app的接口。
{
"id": "com.yourcompany.myeasemobcustomerservice",
"name": "MyEasemobCustomerService",
"version": "1.0.0",
"description": "Uni-app plugin for Easemob Customer Service",
"provider": "yourcompany",
"android": {
"integrateType": "aar",
"compileOptions": {
"sourceCompatibility": "JavaVersion.VERSION_1_8",
"targetCompatibility": "JavaVersion.VERSION_1_8"
},
"permissions": [],
"dependencies": []
},
"cloudfunctions": []
}
3. MyEasemobCustomerService.java
在MyEasemobCustomerService.java
中实现调用环信客服SDK的逻辑。
package com.yourcompany.myeasemobcustomerservice;
import android.content.Context;
import io.dcloud.feature.uniapp.bridge.UniJSCallback;
import io.dcloud.feature.uniapp.common.UniModule;
public class MyEasemobCustomerService extends UniModule {
@JSMethod(uiThread = false)
public void startCustomerService(UniJSCallback callback) {
// 调用环信客服SDK的启动方法
// 假设环信客服SDK有一个叫startCustomerService的方法
// EasemobCustomerService.startCustomerService(mContext);
callback.invoke("Success");
}
}
注意:上述代码中的EasemobCustomerService.startCustomerService(mContext);
是假设的调用方式,你需要根据环信客服SDK的实际API进行调整。
步骤三:在uni-app中使用插件
在uni-app项目中,通过uni.requireNativePlugin
引入并使用该插件。
const easemobPlugin = uni.requireNativePlugin('com.yourcompany.myeasemobcustomerservice');
easemobPlugin.startCustomerService((res) => {
console.log(res); // 输出 "Success"
});
通过上述步骤,你就可以在uni-app中调用Android原生环信客服SDK了。请根据实际环信客服SDK的文档和API进行调整和完善。