配置与起步
将KF5SDKLibrary导入到Eclipse并复制到WorkSpace(Android Studio集成方式,点击查看),步骤如下:
1. 点击Import,选择Existing Android Code Into Workspace;
2. 点击Browse,找到KF5SDKLibrary的路径,选中KF5SDKLibrary;
3. 注意:一定要选择:Copy projects into workSpace,依赖工程包的路径必须同与之关联的工程的workspace一致,否则可能出现异常。
4. 将导入的SDK包依赖到自己的工程:选中Properties;
5. 点击Add,选择KF5SDKLibrary;
6. 由于工程引用了JDK下的类,需要开发者在工程里引入该类,具体方法,右击项目工程,然后buildPath->add libraries ->选择 JRE System Library ->next ->选择当前安装的系统版本;
7. 通知在应用程序中manifest.xml文件中声明:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<activity
android:name="com.chosen.kf5sdk.ImageBrowerActivity"
android:configChanges="orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.chosen.kf5sdk.HelpCenterActivity"
android:configChanges="orientation|screenSize"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.chosen.kf5sdk.FeedBackActivity"
android:configChanges="orientation|screenSize"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.chosen.kf5sdk.LookFeedBackActivity"
android:configChanges="orientation|screenSize"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.chosen.kf5sdk.HelpCenterTypeActivity"
android:configChanges="orientation|screenSize"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.chosen.kf5sdk.HelpCenterTypeChildActivity"
android:configChanges="orientation|screenSize"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.chosen.kf5sdk.HelpCenterTypeDetailsActivity"
android:configChanges="orientation|screenSize"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.chosen.kf5sdk.FeedBackDetailsActivity"
android:configChanges="orientation|screenSize"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.chosen.kf5sdk.ImagePagerActivity"
android:configChanges="orientation|screenSize"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.chosen.kf5sdk.LinkUrlActivity"
android:configChanges="orientation|screenSize"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.chosen.kf5sdk.ImageActivity"
android:configChanges="orientation|screenSize"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.chosen.kf5sdk.OrderAttributeActivity"
android:configChanges="orientation|screenSize"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.chosen.kf5sdk.KF5ChatActivity"
android:configChanges="orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" >
</activity>
<activity
android:name="com.kf5chat.ui.GifViewActivity"
android:configChanges="orientation|screenSize"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.kf5chat.ui.ImageBrowerActivity"
android:configChanges="orientation|screenSize"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.kf5sdk.image.ImageSelectorActivity"
android:configChanges="orientation|screenSize"
android:screenOrientation="portrait" >
</activity>
<service
android:name="com.kf5chat.service.MessageService"
android:enabled="true" >
</service>
方法说明
1. 开发者在应用程序Application中调用全局设置初始化方法
KF5SDKInitializer.initialize(context);
2. 初始化用户信息方法
KF5SDKConfig.INSTANCE.init(context, userInfo, callBack);
3. 初始化参数说明
参数名 | 类型 | 是否必填 | 说明 |
---|---|---|---|
context | Context | 是 | 当前上下文 |
userInfo | UserInfo | 是 | 用户信息封装类,详情请见步骤4 |
callback | CallBack | 是 | 回调接口 |
4. UserInfo属性说明
参数名 | 类型 | 是否必填 | 说明 |
---|---|---|---|
String | 是 | 登录邮箱 | |
phone | String | 否 | 用户手机号 |
appid | String | 是 | 传输秘钥 |
helpAddress | String | 是 | 平台地址 |
name | String | 否 | 用户昵称 |
deviceToken | String | 否 | 设备推送标识 |
sdkName | String | 否 | 创建工单时的标题 |
verifyPriorityType | VerifyPriorityType | 否 | 验证优先级 |
登录邮箱与用户手机号:新版SDK支持email或者手机号登录,请务必填写正确格式的phone或者email。验证逻辑如下:
1 email和phone必须传其一,如果单独传入email或者phone,则verifyUserType无效;
2 如果email和phone都传入时以verifyPriorityType(用户信息验证方式)为主;
2.1 如果verifyUserType设置为1,则验证kf5系统中有没有该email,有则验证成功,不存在则创建用户,并修改该用户的手机号(如果手机号已在系统中存在,将不会修改,并会在回调中提示);
2.2 如果verifyUserType设置为2,则验证kf5系统中有没有该phone,有则验证成功,不存在则创建用户;
2.2.1 如果该用户不存在email则添加该email(如果该email已在系统中存在,将不会添加,并会在回调中提示),如果该用户存在email,则email不能修改,并会在回调中提示;
传输秘钥:传输秘钥的具体生成方式如下,登录您所注册的云客服平台—>系统设置—>移动APP SDK —>添加一个APP —>(设置完成之后)提交—>查看与编辑—>最后找到传输秘钥栏目;传输秘钥的建立与设置权限需要是管理员角色。 由于传输秘钥长度过长使得内容框无法正常显示完,请开发者在复制appid的时候光标移动复制完全。以免出现validate failed的错误提示,出现该错误提示的原因有两个:第一是传输秘钥复制不完整,第二传输秘钥已被删除。
平台地址:即您所注册的平台地址,如 helptest.kf5.com;
用户昵称:如果当前用户已存在,则填写的用户昵称不能被修改;如果用户不存在,如果未填,则用户昵称默认使用登录邮箱@之前的字符串,如果填写,则使用当前初始化的昵称;用户昵称可随时更改。
设备推送标识:即推送给设备的唯一标识码,填写即保存推送标识,有需要推送时才可收到推送消息,否则无法接受到推送消息。创建工单时的标题:即当用户在创建工单时,如果对该属性赋值了,则引用当前属性的值,类似PC端显示“来自XXX的工单”;否则创建工单时的默认标题为“来自android sdk 的工单”。
验证优先级:当填写了phone同时设置了该参数的类型为VerifyPriorityTypePhone,则将以phone登录SDK,否则将以email登录SDK。
注:资源包里面提供了界面,对于界面的修改,可以修改组件的属性和布局以及背景,但是ID不能修改,由于已将源代码打包,修改了ID会报出空指针异常。
5. KF5ActivityUiConfig头部样式修改
参数名 | 类型 | 说明 |
---|---|---|
topBarBackground | int | 头部背景颜色 |
topBarHeight | int | 头部高度 |
tvTitleTextSize | int | 头部标题字体大小,默认22 |
tvTitleTextColor | int | 头部标题字体颜色,默认白色 |
tvRightViewTextSize | int | 头部右侧按钮字体大小,默认20 |
tvRightViewTextColorId | int | 头部右侧按钮字体颜色资源 |
tvRightViewBackgroundSoure | int | 头部右侧按钮背景颜色id |
backImgSource | int | 头部返回按钮资源id |
themeId | int | SDK主题id |
httpRequestLoadingDialogCallBack | HttpRequestLoadingDialogCallBack | - |
ticketChoiceAttachmentCallBack | TicketChoiceAttachmentCallBack | - |
userDefinedDialogCallBack | UserDefinedDialogCallBack | - |
注:
httpRequestLoadingDialogCallBack:设置网络请求时显示自定义loading dialog回调接口,该接口的onHttpRequestStart方法,表示网络请求开始;该接口的onHttpRequestFinish方法,表示这个网络请求结束。设置了该接口,开发者可自定义loading dialog 的style。
ticketChoiceAttachmentCallBack :设置工单反馈与反馈详情中点击上传附件时自定义回调接口,设置了该接口,SDK就不显示自身的上传附件dialog供用户点击,开发者需自定义上传附件的dialog. 该接口的onChoiceAttachment回调方法里的ChoiceAttachmentItemClickCallBack回调接口供开发者通知SDK上传附件的方式是文件或者是相册。
userDefinedDialogCallBack:设置SDK中用于提示的dialog回调接口,设置了该回调接口,SDK中所有需要显示提示的dialog都将回调该方法显示,该接口的onShowUserDefinedDialog方法里的DialogBtnClickCallBack回调接口供开发者通知SDK用户点击的按钮。
启用该对象的方法KF5SDKActivityUIManager.setKf5ActivityUiConfig(activityUiConfig)
其他
为方便开发者更好的将SDK集成到应用程序中,故将SDK中其他必要显示组件提供开发者,开发者修改组件对应的样式,使得SDK更好与应用程序融为一体。
1. 网络请求需要用到的DialogSDK中dialog中所对应的类为ChatProgressDialogView,下面将dialog与所绑定的布局文件以及组件加以说明,开发者修改绑定的xml文件即可。
布局文件:
名称 | UI | 说明 |
---|---|---|
ChatProgressDialogView | chat_progress_bar_style.xml | 该对话框包含显示动画的ImageView与文字提示的TextView |
ImageView说明:
名称 | XML文件 | 说明 |
---|---|---|
Imageview | loading_anim_drawable.xml | ImageView帧动画对应的xml文件(Drawable目录下) |
ChatProgressDialogView的显示样式说明:
名称 | XML文件 | 说明 |
---|---|---|
Style | messagebox_style.xml | 该dialog的显示style(values/styles.xml) |
2. 提示用户其他操作的Dialog,类名为ChatDialog。
组件属性说明:
名称 | UI | 说明 |
---|---|---|
ChatDialog | dialog_layout.xml | 对话框的主布局 |
Button | chat_message_box_single_btn.xml | 一个显示按钮时的布局 |
Button | chat_message_box_double_btn.xml | 两个显示按钮时的布局 |
注:当需要SDK与您的应用更好的集成在一起时,修改对应的XML文件属性即可。