app.js 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  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 == 0) {
  16. return callback('账号不能为空');
  17. }
  18. if(loginInfo.password.length == 0) {
  19. return callback('密码不能为空');
  20. }
  21. // var users = JSON.parse(localStorage.getItem('$users') || '[]');
  22. var url = API.API_URL();
  23. mui.ajax(url, {
  24. dataType: 'json', //服务器返回json格式数据
  25. type: 'post', //HTTP请求类型
  26. data: {
  27. 'serviceId': 'eu_2013V01login',
  28. 'params': '{userName:"' + loginInfo.account + '",password:"' + loginInfo.password + '"}'
  29. },
  30. timeout: 10000, //超时时间设置为10秒;
  31. headers: {
  32. 'Accept': 'application/json'
  33. },
  34. success: function(data) {
  35. //服务器返回响应
  36. if(data.returnCode == 1){
  37. var user = data.returnParams;
  38. var token = data.returnParams.useId;
  39. return owner.createState(user,token, callback);
  40. }else{
  41. return callback(data.returnMsg);
  42. }
  43. },
  44. error: function(xhr, type, errorThrown) {
  45. //异常处理;
  46. console.log(xhr+"========"+type+"==========="+errorThrown);
  47. }
  48. });
  49. // var authed = users.some(function(user) {
  50. // return loginInfo.account == user.account && loginInfo.password == user.password;
  51. // });
  52. // if (authed) {
  53. // return owner.createState(loginInfo.account, callback);
  54. // } else {
  55. // return callback('用户名或密码错误');
  56. // }
  57. };
  58. owner.createState = function(user,token, callback) {
  59. var state = owner.getState();
  60. state.user = user;
  61. state.account = user.name;
  62. state.token = token;
  63. owner.setState(state);
  64. saveCid();
  65. return callback();
  66. };
  67. /**
  68. * 新用户注册
  69. **/
  70. owner.reg = function(regInfo, callback) {
  71. callback = callback || $.noop;
  72. regInfo = regInfo || {};
  73. regInfo.account = regInfo.account || '';
  74. regInfo.password = regInfo.password || '';
  75. if(regInfo.account.length < 5) {
  76. return callback('用户名最短需要 5 个字符');
  77. }
  78. if(regInfo.password.length < 6) {
  79. return callback('密码最短需要 6 个字符');
  80. }
  81. if(!checkEmail(regInfo.email)) {
  82. return callback('邮箱地址不合法');
  83. }
  84. var users = JSON.parse(localStorage.getItem('$users') || '[]');
  85. users.push(regInfo);
  86. localStorage.setItem('$users', JSON.stringify(users));
  87. return callback();
  88. };
  89. /**
  90. * 获取当前状态
  91. **/
  92. owner.getState = function() {
  93. // var stateText = localStorage.getItem('$state') || "{}";
  94. // var state = JSON.parse(stateText);
  95. // var user = {useId:8945468387975,name:'测试2',unitId:347517153919893,groupid:84799943261843,gxId:768921704455493};
  96. // state.user = user;
  97. // return state;
  98. var stateText = localStorage.getItem('$state') || "{}";
  99. return JSON.parse(stateText);
  100. };
  101. /**
  102. * 设置当前状态
  103. **/
  104. owner.setState = function(state) {
  105. state = state || {};
  106. localStorage.setItem('$state', JSON.stringify(state));
  107. //var settings = owner.getSettings();
  108. //settings.gestures = '';
  109. //owner.setSettings(settings);
  110. };
  111. var checkEmail = function(email) {
  112. email = email || '';
  113. return(email.length > 3 && email.indexOf('@') > -1);
  114. };
  115. owner.clearView = function(){
  116. var curr = plus.webview.currentWebview();
  117. var wvs = plus.webview.all();
  118. for (var i = 0, len = wvs.length; i < len; i++) {
  119. if (wvs[i].getURL() == curr.getURL()){
  120. continue;
  121. }else{
  122. wvs[i].close('none');  
  123. }
  124. }
  125. }
  126. /**
  127. * 找回密码
  128. **/
  129. owner.forgetPassword = function(email, callback) {
  130. callback = callback || $.noop;
  131. if(!checkEmail(email)) {
  132. return callback('邮箱地址不合法');
  133. }
  134. return callback(null, '新的随机密码已经发送到您的邮箱,请查收邮件。');
  135. };
  136. /**
  137. * 获取应用本地配置
  138. **/
  139. owner.setSettings = function(settings) {
  140. settings = settings || {};
  141. localStorage.setItem('$settings', JSON.stringify(settings));
  142. }
  143. /**
  144. * 设置应用本地配置
  145. **/
  146. owner.getSettings = function() {
  147. var settingsText = localStorage.getItem('$settings') || "{}";
  148. return JSON.parse(settingsText);
  149. }
  150. /**
  151. * 获取本地是否安装客户端
  152. **/
  153. owner.isInstalled = function(id) {
  154. if(id === 'qihoo' && mui.os.plus) {
  155. return true;
  156. }
  157. if(mui.os.android) {
  158. var main = plus.android.runtimeMainActivity();
  159. var packageManager = main.getPackageManager();
  160. var PackageManager = plus.android.importClass(packageManager)
  161. var packageName = {
  162. "qq": "com.tencent.mobileqq",
  163. "weixin": "com.tencent.mm",
  164. "sinaweibo": "com.sina.weibo"
  165. }
  166. try {
  167. return packageManager.getPackageInfo(packageName[id], PackageManager.GET_ACTIVITIES);
  168. } catch(e) {}
  169. } else {
  170. switch(id) {
  171. case "qq":
  172. var TencentOAuth = plus.ios.import("TencentOAuth");
  173. return TencentOAuth.iphoneQQInstalled();
  174. case "weixin":
  175. var WXApi = plus.ios.import("WXApi");
  176. return WXApi.isWXAppInstalled()
  177. case "sinaweibo":
  178. var SinaAPI = plus.ios.import("WeiboSDK");
  179. return SinaAPI.isWeiboAppInstalled()
  180. default:
  181. break;
  182. }
  183. }
  184. }
  185. /**
  186. *
  187. **/
  188. owner.ajax = function(serviceId,params, callback) {
  189. callback = callback || $.noop;
  190. var url = API.API_URL();
  191. params = JSON.stringify(params);
  192. var obj = {serviceId:serviceId,params:params};
  193. // console.log(JSON.stringify(obj));
  194. mui.ajax(url, {
  195. dataType: 'json', //服务器返回json格式数据
  196. type: 'post', //HTTP请求类型
  197. data: obj,
  198. timeout: 30000, //超时时间设置为10秒;
  199. headers: {
  200. 'Accept': 'application/json'
  201. },
  202. success: function(data) {
  203. //服务器返回响应
  204. // console.log(JSON.stringify(data));
  205. if(data.returnCode == 0){
  206. return callback(data.returnParams);
  207. }else{
  208. mui.toast(data.returnMsg);
  209. if(mui('#pullrefresh')&&mui('#pullrefresh').pullRefresh()){
  210. mui('#pullrefresh').pullRefresh().endPullupToRefresh(true);
  211. mui('#pullrefresh').pullRefresh().endPulldown();
  212. }
  213. if(document.querySelector(".mui-btn")){
  214. document.querySelector(".mui-btn").removeAttribute("disabled");
  215. }
  216. }
  217. },
  218. error: function(xhr, type, errorThrown) {
  219. //异常处理;
  220. console.log(xhr+"==="+ type+"===="+ errorThrown);
  221. // plus.nativeUI.toast("网络异常,请稍候再试");
  222. if(mui('#pullrefresh')&&mui('#pullrefresh').pullRefresh()){
  223. mui('#pullrefresh').pullRefresh().endPullupToRefresh(true);
  224. if(mui('#pullrefresh').pullRefresh().endPulldown)
  225. mui('#pullrefresh').pullRefresh().endPulldown();
  226. }
  227. }
  228. });
  229. };
  230. }(mui, window.app = {}));