feedback.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. (function($, feedback, window, document) {
  2. /*************** 环信配置开始 ****************/
  3. //以后信息更改后,需卸载 “调试 app” 重新调用运行
  4. var APP_KEY = 'dcloudio#mui';
  5. var CUSTOM_ID = 'customer';
  6. /*************** 环信配置结束 ****************/
  7. //一组 “常量”
  8. var PASSWORD = 'pass01!';
  9. var LOCAL_STORE_KEY = 'mui://user';
  10. var USER_PREFIX = 'mui-user-';
  11. /**
  12. * 生成一个 IM 用户名
  13. **/
  14. var createUsername = function() {
  15. return USER_PREFIX + (new Date()).getTime();
  16. };
  17. /**
  18. * 获取用户,如果在本地存储中已有用户则直接返回。
  19. * 否则,注册新的用户
  20. **/
  21. feedback.getUser = function(callback) {
  22. var storeUserText = localStorage.getItem(LOCAL_STORE_KEY);
  23. if (storeUserText) {
  24. if (callback) callback(JSON.parse(storeUserText));
  25. return;
  26. }
  27. var newUsername = createUsername();
  28. Easemob.im.Helper.registerUser({
  29. username: newUsername,
  30. password: PASSWORD,
  31. appKey: APP_KEY,
  32. success: function(result) {
  33. var userInfo = {
  34. username: newUsername,
  35. password: PASSWORD
  36. };
  37. localStorage.setItem(LOCAL_STORE_KEY, JSON.stringify(userInfo));
  38. if (callback) callback(userInfo);
  39. },
  40. error: function(e) {
  41. plus.nativeUI.toast(e.message);
  42. }
  43. });
  44. };
  45. /**
  46. * 登录环信息服务器
  47. **/
  48. feedback.login = function(callback) {
  49. feedback.getUser(function(user) {
  50. var conn = new Easemob.im.Connection();
  51. conn.init({
  52. onOpened: function() {
  53. //alert("成功登录");
  54. conn.setPresence();
  55. if (callback) callback(user, conn);
  56. }
  57. });
  58. conn.open({
  59. user: user.username,
  60. pwd: user.password,
  61. appKey: APP_KEY
  62. });
  63. });
  64. };
  65. /**
  66. * 发送反馈信息
  67. **/
  68. feedback.send = function(content, callback) {
  69. feedback.login(function(user, conn) {
  70. //发送文本消息
  71. var msgText = '问题:' + content.question;
  72. if (content.contact) {
  73. msgText += '; 联系方式:' + content.contact + ';'
  74. }
  75. conn.sendTextMessage({
  76. to: CUSTOM_ID,
  77. msg: msgText,
  78. type: "chat"
  79. });
  80. //如果没有截图
  81. if (!content.images || content.images.length < 1) {
  82. if (callback) callback();
  83. return;
  84. }
  85. //如果有截图
  86. var sendImageCount = 0;
  87. var hasError = false;
  88. content.images.forEach(function(fileInputId) {
  89. //alert(fileInputId)
  90. conn.sendPicture({
  91. fileInputId: fileInputId,
  92. to: CUSTOM_ID,
  93. onFileUploadError: function(error) {
  94. //处理图片上传失败
  95. alert(JSON.stringify(error));
  96. hasError = true;
  97. },
  98. onFileUploadComplete: function(data) {
  99. //处理图片上传成功,如本地消息显示
  100. sendImageCount++;
  101. if (!hasError && sendImageCount >= content.images.length) {
  102. if (callback) callback();
  103. }
  104. }
  105. });
  106. });
  107. //--
  108. });
  109. };
  110. })(mui, window.feedback = {}, window, document);