配置与起步

将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. 初始化参数说明

参数名类型是否必填说明
contextContext当前上下文
userInfoUserInfo用户信息封装类,详情请见步骤4
callbackCallBack回调接口

4. UserInfo属性说明

参数名类型是否必填说明
emailString登录邮箱
phoneString用户手机号
appidString传输秘钥
helpAddressString平台地址
nameString用户昵称
deviceTokenString设备推送标识
sdkNameString创建工单时的标题
verifyPriorityTypeVerifyPriorityType验证优先级

登录邮箱与用户手机号:新版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头部样式修改

参数名类型说明
topBarBackgroundint头部背景颜色
topBarHeightint头部高度
tvTitleTextSizeint头部标题字体大小,默认22
tvTitleTextColorint头部标题字体颜色,默认白色
tvRightViewTextSizeint头部右侧按钮字体大小,默认20
tvRightViewTextColorIdint头部右侧按钮字体颜色资源
tvRightViewBackgroundSoureint头部右侧按钮背景颜色id
backImgSourceint头部返回按钮资源id
themeIdintSDK主题id
httpRequestLoadingDialogCallBackHttpRequestLoadingDialogCallBack-
ticketChoiceAttachmentCallBackTicketChoiceAttachmentCallBack-
userDefinedDialogCallBackUserDefinedDialogCallBack-

注:

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说明
ChatProgressDialogViewchat_progress_bar_style.xml该对话框包含显示动画的ImageView与文字提示的TextView

ImageView说明:

名称XML文件说明
Imageviewloading_anim_drawable.xmlImageView帧动画对应的xml文件(Drawable目录下)

ChatProgressDialogView的显示样式说明:

名称XML文件说明
Stylemessagebox_style.xml该dialog的显示style(values/styles.xml)

2. 提示用户其他操作的Dialog,类名为ChatDialog。

组件属性说明:

名称UI说明
ChatDialogdialog_layout.xml对话框的主布局
Buttonchat_message_box_single_btn.xml一个显示按钮时的布局
Buttonchat_message_box_double_btn.xml两个显示按钮时的布局

注:当需要SDK与您的应用更好的集成在一起时,修改对应的XML文件属性即可。