- JDK7+
// required
// 「3.2.3」改成 maven central 徽章后面对应的版本号,例如3.2.3
compile 'com.meiqia:meiqiasdk:3.2.3@aar'
// 在下面的依赖中,如果你的项目已经依赖过其中的组件,则不需要重复依赖
compile 'com.android.support:support-v4:23.1.1'
compile 'com.squareup.okhttp3:okhttp:3.2.0'
compile 'com.commit451:PhotoView:1.2.4'
// 目前支持常见的 4 种图片加载库,选择其中一种作为 MQConfig.init 方法的第三个参数进行初始化
compile 'com.meiqia:uilimageloader:1.0.0@aar'
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
// compile 'com.meiqia:glideimageloader:1.0.0@aar'
// compile 'com.github.bumptech.glide:glide:3.7.0'
// compile 'com.meiqia:picassoimageloader:1.0.0@aar'
// compile 'com.squareup.picasso:picasso:2.5.2'
// compile 'com.meiqia:xutilsimageloader:1.0.0@aar'
// compile 'org.xutils:xutils:3.3.32'
1.拷贝 /eclipse/MeiqiaSdk 到工作空间并导入 Eclipse 中
2.选中你自己的工程的根目录 -> 右键 -> 选择 Properties -> 选中 Android -> 点击 Library 右边的的 Add 按钮 -> 选中 MeiqiaSdk -> 点击 OK
3.在你自己的工程的 AndroidManifest.xml 文件中添加以下权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
4.在你自己的工程的 AndroidManifest.xml 文件的 application 结点下加入以下代码
<!--聊天界面-->
<activity
android:name="com.meiqia.meiqiasdk.activity.MQConversationActivity"
android:configChanges="keyboardHidden|orientation"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/MQTheme"
android:windowSoftInputMode="stateHidden|adjustResize" />
<!--图片查看界面-->
<activity
android:name="com.meiqia.meiqiasdk.activity.MQPhotoPreviewActivity"
android:configChanges="keyboardHidden|orientation"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/MQTheme"
android:windowSoftInputMode="stateAlwaysHidden" />
<!--图片选择界面-->
<activity
android:name="com.meiqia.meiqiasdk.activity.MQPhotoPickerActivity"
android:configChanges="keyboardHidden|orientation"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/MQTheme"
android:windowSoftInputMode="stateAlwaysHidden" />
<!--图片选择预览界面-->
<activity
android:name="com.meiqia.meiqiasdk.activity.MQPhotoPickerPreviewActivity"
android:configChanges="keyboardHidden|orientation"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/MQTheme"
android:windowSoftInputMode="stateAlwaysHidden" />
<!--留言表单界面-->
<activity
android:name="com.meiqia.meiqiasdk.activity.MQMessageFormActivity"
android:configChanges="keyboardHidden|orientation"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/MQTheme"
android:windowSoftInputMode="stateHidden|adjustResize" />
<service android:name="com.meiqia.core.MeiQiaService" />
5.如果你自己的工程中已经添加了 /eclipse/MeiqiaSdk/libs 中的 jar 包,拷贝你自己的工程中对应的 jar 包替换 /eclipse/MeiqiaSdk/libs 中的 jar 包
注意: 报 Cannot find the class file for java.nio.file.OpenOption 错的解决方法:Project -> Properties -> Java Build Path -> Libraries -> Add Library -> JRE System Library -> Select Workspace Default (jdk 1.7*)
如果编译失败, Project Build Target 必须指定 Android 6.0
// MQImageLoader 的实现类目前有 GlideImageloader、PicassoImageLoader、UILImageLoader,根据你自己项目中已使用的图片加载库来选择
MQConfig.init(this, "Your Appkey", new MQImageLoader的实现类(), new OnInitCallback() {
@Override
public void onSuccess(String clientId) {
Toast.makeText(MainActivity.this, "init success", Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(int code, String message) {
Toast.makeText(MainActivity.this, "int failure", Toast.LENGTH_SHORT).show();
}
});
如果您不知道 Appkey ,请使用美洽管理员帐号登录 美洽,在「设置」 -> 「SDK」 菜单中查看。如下图:
初始化成功后,就可以直接启动对话界面
使用当前 id 分配上线
Intent intent = new MQIntentBuilder(this).build();
startActivity(intent);
目前是两种模式: (1) 完全对话模式 无机器人时:如果当前客服不在线,直接聊天界面输入就是留言,客服上线后能够直接回复,如果客服在线,则进入正常客服对话模式。 有机器人时:如果当前客服不在线时,直接聊天界面输入的话,还是由机器人回答,顾客点击留言就会跳转到表单。 (2) 单一表单模式 不管客服是否在线都会进入表单,顾客提交后,不会有聊天的界面。这种主要用于一些 App 只需要用户反馈,不需要直接回复的形式。
startActivity(new Intent(this, MQMessageFormActivity.class));
如果你的 App 需要兼容 Android M,需要处理权限问题。 参考 Demo
绑定开发者用户 id 上线
Intent intent = new MQIntentBuilder(this)
.setCustomizedId("开发者的 id") // 相同的 id 会被识别为同一个顾客
.build();
startActivity(intent);
设置顾客信息
HashMap<String, String> clientInfo = new HashMap<>();
clientInfo.put("name", "富坚义博");
clientInfo.put("avatar", "https://s3.cn-north-1.amazonaws.com.cn/pics.meiqia.bucket/1dee88eabfbd7bd4");
clientInfo.put("gender", "男");
clientInfo.put("tel", "1300000000");
clientInfo.put("技能1", "休刊");
Intent intent = new MQIntentBuilder(this)
.setClientInfo(clientInfo)
.build();
startActivity(intent);
指定客服分配
Intent intent = new MQIntentBuilder(this)
.setScheduledAgent(agentId) // agentId 可以从工作台查询
.build();
startActivity(intent);
指定客服分组分配
Intent intent = new MQIntentBuilder(this)
.setScheduledGroup(groupId) // groupId 可以从工作台查询
.build();
startActivity(intent);
自定义留言表单引导文案
配置了该引导文案后将不会读取工作台配置的引导文案。 最佳实践:劲量不要在 SDK 中配置引导文案,而是通过工作台配置引导文案,方便在节假日的时候统一配置各终端的引导文案,避免重新打包发布 App。
MQConfig.leaveMessageIntro = "自定义留言表单引导文案";
自定义留言表单输入项
如果不配置该选项则留言表单界面默认有「留言」「邮箱」「手机」这三个输入项
MQConfig.messageFormInputModels = new ArrayList<>();
MessageFormInputModel phoneMfim = new MessageFormInputModel();
phoneMfim.tip = "手机";
phoneMfim.key = "tel";
phoneMfim.required = true;
phoneMfim.hint = "请输入你的手机号";
phoneMfim.inputType = InputType.TYPE_CLASS_PHONE;
MessageFormInputModel emailMfim = new MessageFormInputModel();
emailMfim.tip = "邮箱";
emailMfim.key = "email";
emailMfim.required = true;
emailMfim.hint = "请输入你的邮箱";
emailMfim.inputType = InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS;
MessageFormInputModel nameMfim = new MessageFormInputModel();
nameMfim.tip = "姓名";
nameMfim.key = "name";
nameMfim.hint = "请输入你的姓名";
nameMfim.inputType = InputType.TYPE_CLASS_TEXT;
MQConfig.messageFormInputModels.add(phoneMfim);
MQConfig.messageFormInputModels.add(emailMfim);
MQConfig.messageFormInputModels.add(nameMfim);