app.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. /**
  2. * 演示程序当前的 “注册/登录” 等操作,是基于 “本地存储” 完成的
  3. * 当您要参考这个演示程序进行相关 app 的开发时,
  4. * 请注意将相关方法调整成 “基于服务端Service” 的实现。
  5. **/
  6. (function($, owner) {
  7. /**
  8. * 用户登录
  9. **/
  10. owner.login = function(loginInfo, callback) {
  11. callback = callback || $.noop;
  12. loginInfo = loginInfo || {};
  13. loginInfo.account = loginInfo.account || '';
  14. loginInfo.password = loginInfo.password || '';
  15. if (loginInfo.account.length < 5) {
  16. return callback('账号最短为 5 个字符');
  17. }
  18. if (loginInfo.password.length < 6) {
  19. return callback('密码最短为 6 个字符');
  20. }
  21. var users = JSON.parse(localStorage.getItem('$users') || '[]');
  22. var authed = users.some(function(user) {
  23. return loginInfo.account == user.account && loginInfo.password == user.password;
  24. });
  25. if (authed) {
  26. return owner.createState(loginInfo.account, callback);
  27. } else {
  28. return callback('用户名或密码错误');
  29. }
  30. };
  31. owner.createState = function(name, callback) {
  32. var state = owner.getState();
  33. state.account = name;
  34. state.token = "token123456789";
  35. owner.setState(state);
  36. return callback();
  37. };
  38. /**
  39. * 新用户注册
  40. **/
  41. owner.reg = function(regInfo, callback) {
  42. callback = callback || $.noop;
  43. regInfo = regInfo || {};
  44. regInfo.account = regInfo.account || '';
  45. regInfo.password = regInfo.password || '';
  46. if (regInfo.account.length < 5) {
  47. return callback('用户名最短需要 5 个字符');
  48. }
  49. if (regInfo.password.length < 6) {
  50. return callback('密码最短需要 6 个字符');
  51. }
  52. if (!checkEmail(regInfo.email)) {
  53. return callback('邮箱地址不合法');
  54. }
  55. var users = JSON.parse(localStorage.getItem('$users') || '[]');
  56. users.push(regInfo);
  57. localStorage.setItem('$users', JSON.stringify(users));
  58. return callback();
  59. };
  60. /**
  61. * 获取当前状态
  62. **/
  63. owner.getState = function() {
  64. var stateText = localStorage.getItem('$state') || "{}";
  65. return JSON.parse(stateText);
  66. };
  67. /**
  68. * 设置当前状态
  69. **/
  70. owner.setState = function(state) {
  71. state = state || {};
  72. localStorage.setItem('$state', JSON.stringify(state));
  73. //var settings = owner.getSettings();
  74. //settings.gestures = '';
  75. //owner.setSettings(settings);
  76. };
  77. var checkEmail = function(email) {
  78. email = email || '';
  79. return (email.length > 3 && email.indexOf('@') > -1);
  80. };
  81. /**
  82. * 找回密码
  83. **/
  84. owner.forgetPassword = function(email, callback) {
  85. callback = callback || $.noop;
  86. if (!checkEmail(email)) {
  87. return callback('邮箱地址不合法');
  88. }
  89. return callback(null, '新的随机密码已经发送到您的邮箱,请查收邮件。');
  90. };
  91. /**
  92. * 获取应用本地配置
  93. **/
  94. owner.setSettings = function(settings) {
  95. settings = settings || {};
  96. localStorage.setItem('$settings', JSON.stringify(settings));
  97. }
  98. /**
  99. * 设置应用本地配置
  100. **/
  101. owner.getSettings = function() {
  102. var settingsText = localStorage.getItem('$settings') || "{}";
  103. return JSON.parse(settingsText);
  104. }
  105. }(mui, window.app = {}));