You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
148 lines
4.0 KiB
Plaintext
148 lines
4.0 KiB
Plaintext
11 months ago
|
/**
|
||
|
* 演示程序当前的 “注册/登录” 等操作,是基于 “本地存储” 完成的
|
||
|
* 当您要参考这个演示程序进行相关 app 的开发时,
|
||
|
* 请注意将相关方法调整成 “基于服务端Service” 的实现。
|
||
|
**/
|
||
|
(function($, owner) {
|
||
|
/**
|
||
|
* 用户登录
|
||
|
**/
|
||
|
owner.login = function(loginInfo, callback) {
|
||
|
callback = callback || $.noop;
|
||
|
loginInfo = loginInfo || {};
|
||
|
loginInfo.account = loginInfo.account || '';
|
||
|
loginInfo.password = loginInfo.password || '';
|
||
|
if (loginInfo.account.length < 5) {
|
||
|
return callback('账号最短为 5 个字符');
|
||
|
}
|
||
|
if (loginInfo.password.length < 6) {
|
||
|
return callback('密码最短为 6 个字符');
|
||
|
}
|
||
|
var users = JSON.parse(localStorage.getItem('$users') || '[]');
|
||
|
var authed = users.some(function(user) {
|
||
|
return loginInfo.account == user.account && loginInfo.password == user.password;
|
||
|
});
|
||
|
if (authed) {
|
||
|
return owner.createState(loginInfo.account, callback);
|
||
|
} else {
|
||
|
return callback('用户名或密码错误');
|
||
|
}
|
||
|
};
|
||
|
|
||
|
owner.createState = function(name, callback) {
|
||
|
var state = owner.getState();
|
||
|
state.account = name;
|
||
|
state.token = "token123456789";
|
||
|
owner.setState(state);
|
||
|
return callback();
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* 新用户注册
|
||
|
**/
|
||
|
owner.reg = function(regInfo, callback) {
|
||
|
callback = callback || $.noop;
|
||
|
regInfo = regInfo || {};
|
||
|
regInfo.account = regInfo.account || '';
|
||
|
regInfo.password = regInfo.password || '';
|
||
|
if (regInfo.account.length < 5) {
|
||
|
return callback('用户名最短需要 5 个字符');
|
||
|
}
|
||
|
if (regInfo.password.length < 6) {
|
||
|
return callback('密码最短需要 6 个字符');
|
||
|
}
|
||
|
if (!checkEmail(regInfo.email)) {
|
||
|
return callback('邮箱地址不合法');
|
||
|
}
|
||
|
var users = JSON.parse(localStorage.getItem('$users') || '[]');
|
||
|
users.push(regInfo);
|
||
|
localStorage.setItem('$users', JSON.stringify(users));
|
||
|
return callback();
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* 获取当前状态
|
||
|
**/
|
||
|
owner.getState = function() {
|
||
|
var stateText = localStorage.getItem('$state') || "{}";
|
||
|
return JSON.parse(stateText);
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* 设置当前状态
|
||
|
**/
|
||
|
owner.setState = function(state) {
|
||
|
state = state || {};
|
||
|
localStorage.setItem('$state', JSON.stringify(state));
|
||
|
//var settings = owner.getSettings();
|
||
|
//settings.gestures = '';
|
||
|
//owner.setSettings(settings);
|
||
|
};
|
||
|
|
||
|
var checkEmail = function(email) {
|
||
|
email = email || '';
|
||
|
return (email.length > 3 && email.indexOf('@') > -1);
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* 找回密码
|
||
|
**/
|
||
|
owner.forgetPassword = function(email, callback) {
|
||
|
callback = callback || $.noop;
|
||
|
if (!checkEmail(email)) {
|
||
|
return callback('邮箱地址不合法');
|
||
|
}
|
||
|
return callback(null, '新的随机密码已经发送到您的邮箱,请查收邮件。');
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* 获取应用本地配置
|
||
|
**/
|
||
|
owner.setSettings = function(settings) {
|
||
|
settings = settings || {};
|
||
|
localStorage.setItem('$settings', JSON.stringify(settings));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 设置应用本地配置
|
||
|
**/
|
||
|
owner.getSettings = function() {
|
||
|
var settingsText = localStorage.getItem('$settings') || "{}";
|
||
|
return JSON.parse(settingsText);
|
||
|
}
|
||
|
/**
|
||
|
* 获取本地是否安装客户端
|
||
|
**/
|
||
|
owner.isInstalled = function(id) {
|
||
|
if (id === 'qihoo' && mui.os.plus) {
|
||
|
return true;
|
||
|
}
|
||
|
if (mui.os.android) {
|
||
|
var main = plus.android.runtimeMainActivity();
|
||
|
var packageManager = main.getPackageManager();
|
||
|
var PackageManager = plus.android.importClass(packageManager)
|
||
|
var packageName = {
|
||
|
"qq": "com.tencent.mobileqq",
|
||
|
"weixin": "com.tencent.mm",
|
||
|
"sinaweibo": "com.sina.weibo"
|
||
|
}
|
||
|
try {
|
||
|
return packageManager.getPackageInfo(packageName[id], PackageManager.GET_ACTIVITIES);
|
||
|
} catch (e) {}
|
||
|
} else {
|
||
|
switch (id) {
|
||
|
case "qq":
|
||
|
var TencentOAuth = plus.ios.import("TencentOAuth");
|
||
|
return TencentOAuth.iphoneQQInstalled();
|
||
|
case "weixin":
|
||
|
var WXApi = plus.ios.import("WXApi");
|
||
|
return WXApi.isWXAppInstalled()
|
||
|
case "sinaweibo":
|
||
|
var SinaAPI = plus.ios.import("WeiboSDK");
|
||
|
return SinaAPI.isWeiboAppInstalled()
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}(mui, window.app = {}));
|