QYAction.h 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. //
  2. // QYAction.h
  3. // QYSDK
  4. //
  5. // Created by Netease on 2018/10/25.
  6. // Copyright © 2018年 Netease. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. /**
  10. * 动作类型
  11. */
  12. typedef NS_ENUM(NSInteger, QYActionType) {
  13. QYActionTypeNone = 0,
  14. QYActionTypeRequestStaffBefore, //请求客服前
  15. QYActionTypeRequestStaffAfter, //请求客服后
  16. };
  17. /**
  18. * 通用回调,一般用于告诉SDK是否继续进行后续操作
  19. * 例如:设置了请求客服前回调后,通过调用此QYCallback来继续或是中断请求客服
  20. */
  21. typedef void (^QYCallback)(BOOL continueIfNeeded);
  22. // QYActionTypeRequestStaffBefore 定义
  23. /**
  24. * 请求客服场景
  25. */
  26. typedef NS_ENUM(NSInteger, QYRequestStaffBeforeScene) {
  27. QYRequestStaffBeforeSceneNone, //无需关心的请求客服场景
  28. QYRequestStaffBeforeSceneInit, //进入会话页面,初次请求客服
  29. QYRequestStaffBeforeSceneRobotUnable, //机器人模式下告知无法解答,点击消息中人工客服按钮请求
  30. QYRequestStaffBeforeSceneNavHumanButton, //机器人模式下,点击右上角人工按钮
  31. QYRequestStaffBeforeSceneActiveRequest, //主动请求人工客服
  32. QYRequestStaffBeforeSceneChangeStaff, //切换人工客服
  33. QYRequestStaffBeforeSceneReconnect, //重新连接客服
  34. QYRequestStaffBeforeSceneRobotTransfer, //机器人会话中转接至另一个机器人
  35. };
  36. /**
  37. * 请求客服前回调
  38. *
  39. * @param scene 请求客服场景
  40. * @param onlyHuman 是否只请求人工客服
  41. * @param callback 处理完成后的回调,若需继续请求客服,则调用callback(YES);若需停止请求,调用callback(NO)
  42. */
  43. typedef void (^QYRequestStaffBeforeBlock)(QYRequestStaffBeforeScene scene, BOOL onlyHuman, QYCallback callback);
  44. // QYActionTypeRequestStaffAfter 定义
  45. /**
  46. * 请求客服后回调
  47. *
  48. * @param info 会话相关信息
  49. * @param error 错误信息
  50. */
  51. typedef void (^QYRequestStaffAfterBlock)(NSDictionary *info, NSError *error);
  52. /**
  53. * QYAction定义了部分动作,通过type区分不同情形,并调用各自对应的回调
  54. * 若需要获取这部分动作,请在QYCustomActionConfig单例中设置QYAction属性
  55. */
  56. @interface QYAction : NSObject
  57. /**
  58. * 动作类型
  59. */
  60. @property (nonatomic, assign) QYActionType type;
  61. /**
  62. * 请求客服前调用
  63. */
  64. @property (nonatomic, copy) QYRequestStaffBeforeBlock requestStaffBeforeBlock;
  65. /**
  66. * 请求客服后调用
  67. */
  68. @property (nonatomic, copy) QYRequestStaffAfterBlock requestStaffAfterBlock;
  69. @end