1.share.js
// 必须定义方法为window下的对象
var W = window;
var channelId = "ares";
var channelName = "管理驾驶舱";
// 事件队列
var _mevents = [],
// Ajax并发事件 @type {Array}
_clientAjax = [];
var YT;
// push 增加入队列
// shift 先进先出
// 设置自定义事件
W.setWebitEvent = function(evtName, evtCode) {
if (evtName == "") {
return;
}
_mevents.push(JSON.stringify({
code : evtCode,
name : evtName
}));
};
// 获取EventCode
W.getWebkitEvent = function() {
return _mevents.length > 0 ? _mevents.shift() : "0";
};
var iphone = {
title : channelName,
/**
* @Desc 客户端native ajax 请求
* @param url
* {url} 请求地址
* @param params
* {json} 请求参数
* @param succFuncName
* {string} 成功回调函数名称
* @param failFuncName
* {string} 失败回调函数名称
* @example YT.post('/mbank/login/login.do',{p1:'x'},'success');
*/
post : function(url, params, succFuncName, failFuncName) {
var data = {
"channelData" : params,
"cookiedata" : document.cookie
};
try {
_clientAjax.push(JSON.stringify({
url : url,
params : data,
success : Fw.getFunctionName(succFuncName),
failure : Fw.getFunctionName(failFuncName),
channelId : channelId
}));
setWebitEvent(_clientAjax && _clientAjax.shift(), '1001');
} catch (e) {
alert('post=' + e);
}
},
xmlPost : function(url, params, hearder, success) {
var reqData = Fw.encodeBase64(params);
var data = {
"accepType" : "*/*",
"contextType" : "*/*",
"channelData" : reqData,
"cookiedata" : document.cookie,
"headers" : hearder
};
var func1 = function(data) {
var c = eval(success);
var result = Fw.decodeBase64(data.msg)
new c(result);
};
try {
_clientAjax.push(JSON.stringify({
url : url,
params : data,
success : Fw.getFunctionName(func1),
failure : Fw.getFunctionName(func1),
channelId : channelId
}));
setWebitEvent(_clientAjax && _clientAjax.shift(), '1001');
} catch (e) {
alert('post=' + e);
}
},
/**
* get请求方法
*/
get : function(url, callback) {
var data = {
"method" : "GET",
"channelData" : "",
"cookiedata" : document.cookie
};
try {
_clientAjax.push(JSON.stringify({
url : url,
params : data,
success : Fw.getFunctionName(callback),
failure : Fw.getFunctionName(callback),
channelId : channelId
}));
setWebitEvent(_clientAjax && _clientAjax.shift(), '1001');
} catch (e) {
alert('post=' + e);
}
},
xmlGet : function(url, success) {
var data = {
"method" : "GET",
"accepType" : "*/*",
"contextType" : "*/*",
"cookiedata" : document.cookie
};
var func1 = function(data) {
var c = eval(success);
var result = Fw.decodeBase64(data.msg)
new c(result);
};
try {
_clientAjax.push(JSON.stringify({
url : url,
params : data,
success : Fw.getFunctionName(func1),
failure : Fw.getFunctionName(func1),
channelId : channelId
}));
setWebitEvent(_clientAjax && _clientAjax.shift(), '1001');
} catch (e) {
alert('post=' + e);
}
},
/**
* 标题栏方法
*/
initPageTitle : function(title, btnLeftName, btnLeftFun) {
var cfg = {
title : title
};
var leftFunc = Fw.getFunctionName(btnLeftFun);
cfg.leftButton = {
exist : 'true',
text : btnLeftName,
handler : leftFunc
};
var rightFunc = Fw.getFunctionName(function() {
YT.gotoIndex();
});
cfg.rightButton = {
exist : true,
text : "返回",
handler : 'YT.gotoIndex'
};
setWebitEvent(JSON.stringify(cfg), "02");
},
/**
* @Desc 返回系统首页(此方法直接使用,客户端会自动监听
* @example YT.gotoIndex();
*/
gotoIndex : function() {
setWebitEvent("{}", "08");
},
/**
* 回到首页
*/
gotoHomePage : function() {
window.SysClientJs.gotoHomePage();
},
/**
* 获取token
*/
getAuthToken : function(callback) {
W.setWebitEvent(Fw.getFunctionName(callback), "1002");
},
/**
* 屏幕全屏显示
*/
isShowTitle : function(b) {
if (b == true) {
W.setWebitEvent("false", "1005");
} else {
W.setWebitEvent("true", "1005");
}
},
/**
* 是否横屏
*/
isLandscape : function(b) {
W.setWebitEvent(b, "1007");
},
/**
* 获取定位信息
*/
getLocationInfo : function(callback) {
W.setWebitEvent(Fw.getFunctionName(callback), "1006");
},
/**
* 文件下载
*/
download : function(callback, url) {
var cfg = {
url : url,
channelId : channelId
};
var params = {
callback : Fw.getFunctionName(callback),
params : cfg
};
W.setWebitEvent(JSON.stringify(params), "1008");
},
/**
* 文件下载
*/
getImage : function(url, callback) {
var cfg = {
url : url,
channelId : channelId
};
var params = {
callback : Fw.getFunctionName(callback),
params : cfg
};
W.setWebitEvent(JSON.stringify(params), "1016");
},
/**
* 通过外部浏览器下载文件
*/
browserDown : function(url) {
var cfg = {
url : url,
channelId : channelId
};
var params = {
params : cfg
};
W.setWebitEvent(JSON.stringify(params), "1009");
},
/**
* 通过路径打开文件
*/
openFile : function(path) {
var cfg = {
path : path,
};
W.setWebitEvent(JSON.stringify(cfg), "1010");
},
/**
* 活体检测
*/
recongnition : function(callback) {
W.setWebitEvent(Fw.getFunctionName(callback), "1011");
},
/**
* 签字版
*/
signaturePad : function(callback) {
var func = Fw.getFunctionName(callback);
var func1 = function(data) {
var c = eval(func);
new c(data);
};
W.setWebitEvent(Fw.getFunctionName(func1), "1014");
},
/**
* 调用相机拍照
*/
camera : function(callback) {
var func = Fw.getFunctionName(callback);
var func1 = function(data) {
console.log(data);
var c = eval(func);
new c(data.base64);
};
W.setWebitEvent(Fw.getFunctionName(func1), "1012");
},
/**
* 调用相机拍照(图片压缩) maxSize : 图片最大大小,单位kb
*/
camera2 : function(callback, scale, quality, mark) {
var func = Fw.getFunctionName(callback);
var func1 = function(data) {
var c = eval(func);
new c(data.path, data.base64);
};
var params = {
scale : scale || '1',
quality : quality || '0.5',
mark : mark || 'false',
callback : Fw.getFunctionName(func1)
};
W.setWebitEvent(JSON.stringify(params), "1017");
},
/**
* 调用ocr相机拍照
*/
ocrCamera : function(callback) {
var func = Fw.getFunctionName(callback);
var func1 = function(data) {
var c = eval(func);
new c(data.base64);
};
W.setWebitEvent(Fw.getFunctionName(func1), "1015");
},
/**
* 调用手机相册
*/
ptAlbum : function(callback) {
var func = Fw.getFunctionName(callback);
var func1 = function(data) {
var c = eval(func);
new c(data.base64);
};
W.setWebitEvent(Fw.getFunctionName(func1), "1013");
},
/**
* 调用手机相册(图片压缩) scale : 尺寸压缩系统;0-1 1原图大小 默认原图 quality : 质量压缩系数;0-1 1质量最好
* 默认 0.5 mark : 图片加水印 默认不加水印
*/
ptAlbum2 : function(callback, scale, quality, mark) {
var func = Fw.getFunctionName(callback);
var func1 = function(data) {
var c = eval(func);
new c(data.path, data.base64);
};
var params = {
scale : scale || '1',
quality : quality || '0.5',
mark : mark || 'false',
callback : Fw.getFunctionName(func1)
};
W.setWebitEvent(JSON.stringify(params), "1018");
},
/**
* 是否显示水印
*/
showWaterMark : function(b) {
if (b == true) {
W.setWebitEvent("true", "49");
} else {
W.setWebitEvent("false", "49");
}
},
/**
* 防截屏控制(IOS无法防止截屏)
*/
screenCapture : function(b) {
return;
},
/**
* 文件名
*/
uploadFile : function(callback) {
W.setWebitEvent(Fw.getFunctionName(callback), "1019");
},
/**
* 下载文档并打开
*/
openOffice : function(url){
var params = {
url : url
};
W.setWebitEvent(JSON.stringify(params), "1020");
},
appCallUp : function(url, pakg, appName, downLoadUrl){
var params = {
url : url,
appName : appName,
downLoadUrl : downLoadUrl
};
W.setWebitEvent(JSON.stringify(params), "1021");
},
/**
* 获取门户app版本号
*/
getAppVersion : function(callback){
W.setWebitEvent(Fw.getFunctionName(callback), "1022");
},
/**
* 保存图片(Base64)
*/
saveImageToBase64 : function(data){
var params = {
title : "移动门户",
image : data
}
W.setWebitEvent(JSON.stringify(params), "1023");
},
/**
* 分享,1、微信好友分享,2、微信朋友圈分享,3、支付宝分享
*/
share : function(type,data){
console.log(JSON.stringify(data));
if(type == 1){
console.log("微信好友分享");
W.setWebitEvent(JSON.stringify(data), "1024");
}else if(type ==2){
console.log("微信朋友圈分享");
W.setWebitEvent(JSON.stringify(data), "1025");
}else if(type ==3){
console.log("支付宝分享");
W.setWebitEvent(JSON.stringify(data), "1026");
}
},
/**
* 二维码扫描
*/
scanQR : function(callback){
W.setWebitEvent(Fw.getFunctionName(callback), "1027");
},
/**
*
* @Desc 打电话
* @param phoneNo
* 手机号
*/
callPhone : function(phoneNo) {
var cfg = {
phoneNo : phoneNo
};
setWebitEvent(JSON.stringify(cfg), '18');
}
};
var android = {
title : channelName,
/**
* 客户端native ajax 请求
*
* @param url
* 请求地址
* @param params
* 请求参数
* @param success
* 成功回调函数
* @param failure
* 失败回调函数
*/
post : function(url, params, success, failure) {
var data = {
"channelData" : params,
"cookiedata" : document.cookie
};
var cfg = {
url : url,
params : data,
success : Fw.getFunctionName(success),
failure : Fw.getFunctionName(failure)
};
window.SysClientJs.threeparty_post(JSON.stringify(cfg), channelId);
},
xmlPost : function(url, params, hearder, success) {
var reqData = Fw.encodeBase64(params);
var data = {
"accepType" : "*/*",
"contextType" : "*/*",
"channelData" : reqData,
"cookiedata" : document.cookie,
"headers" : hearder
};
var func1 = function(data) {
var c = eval(success);
var result = Fw.decodeBase64(data.msg);
new c(result);
};
var cfg = {
url : url,
params : data,
success : Fw.getFunctionName(func1),
failure : Fw.getFunctionName(func1)
};
window.SysClientJs.threeparty_post(JSON.stringify(cfg), channelId);
},
/**
* get请求方法
*/
get : function(url, callback) {
var data = {
"method" : "GET",
"channelData" : "",
"cookiedata" : document.cookie
};
var cfg = {
url : url,
params : data,
success : Fw.getFunctionName(callback),
failure : Fw.getFunctionName(callback)
};
window.SysClientJs.threeparty_post(JSON.stringify(cfg), channelId);
},
xmlGet : function(url, success) {
var data = {
"method" : "GET",
"accepType" : "*/*",
"contextType" : "*/*",
"cookiedata" : document.cookie
};
var func1 = function(data) {
var c = eval(success);
var result = Fw.decodeBase64(data.msg)
new c(result);
};
var cfg = {
url : url,
params : data,
success : Fw.getFunctionName(func1),
failure : Fw.getFunctionName(func1)
};
window.SysClientJs.threeparty_post(JSON.stringify(cfg), channelId);
},
/**
* 标题栏方法
*/
initPageTitle : function(title, btnLeftName, btnLeftFun) {
var cfg = {
title : title
};
var leftFunc = Fw.getFunctionName(btnLeftFun);
cfg.leftButton = {
exist : 'true',
name : btnLeftName,
func : leftFunc
};
var rightFunc = Fw.getFunctionName(function() {
YT.gotoAppHome();
});
cfg.rightButton = {
exist : 'true',
name : "返回",
func : rightFunc
};
window.SysClientJs.initPageTitle(JSON.stringify(cfg));
},
/**
* 返回上一层
*/
gotoIndex : function() {
window.SysClientJs.gotoIndex();
},
/**
* 回到首页
*/
gotoAppHome : function() {
window.SysClientJs.gotoIndexFrist();
},
/**
* 获取token
*/
getAuthToken : function(callback) {
window.SysClientJs.getOAuthToken(Fw.getFunctionName(callback));
},
/**
* 文件下载方法
*/
download : function(callback, url) {
var cfg = {
url : url,
channelId : channelId
};
window.SysClientJs.downloadFile(Fw.getFunctionName(callback), JSON
.stringify(cfg));
},
/**
* 文件下载方法
*/
getImage : function(url, callback) {
var cfg = {
url : url,
channelId : channelId
};
window.SysClientJs.getImage(Fw.getFunctionName(callback), JSON
.stringify(cfg));
},
/**
* 通过外部浏览器下载文件
*/
browserDown : function(url) {
var cfg = {
url : url,
channelId : channelId
};
window.SysClientJs.webDownloadFile(JSON.stringify(cfg));
},
/**
* 通过路径打开文件
*/
openFile : function(path) {
window.SysClientJs.openFile(path);
},
/**
* 调用相机拍照
*/
camera : function(callback) {
window.SysClientJs.callCamera(Fw.getFunctionName(callback));
},
/**
* 调用手机相册(图片压缩) scale : 尺寸压缩系统;0-1 1原图大小 默认原图 quality : 质量压缩系数;0-1 1质量最好
* 默认 0.5 mark : 图片加水印 默认不加水印
*/
camera2 : function(callback, scale, quality, mark) {
var func = Fw.getFunctionName(callback);
var func1 = function(data) {
var c = eval(func);
new c("", data);
};
var s = scale || "1";
var q = quality || "0.5";
var m = mark || "false";
window.SysClientJs.callCameraControlSize(Fw
.getFunctionName(func1), s, q, m);
},
/**
* 调用ocr相机拍照
*/
ocrCamera : function(callback) {
window.SysClientJs.takePhoto(Fw.getFunctionName(callback));
},
/**
* 调用手机相册
*/
ptAlbum : function(callback) {
var func = Fw.getFunctionName(callback);
var func1 = function(path, data) {
var c = eval(func);
new c(data);
};
window.SysClientJs.callAlbum(Fw.getFunctionName(func1));
},
/**
* 调用手机相册(图片压缩) scale : 尺寸压缩系统;0-1 1原图大小 默认原图 quality : 质量压缩系数;0-1 1质量最好
* 默认 0.5 mark : 图片加水印 默认不加水印
*/
ptAlbum2 : function(callback, scale, quality, mark) {
var s = scale || "1";
var q = quality || "0.5";
var m = mark || "false";
window.SysClientJs.callAlbumControlSize(Fw
.getFunctionName(callback), s, q, m);
},
/**
* 获取定位信息
*/
getLocationInfo : function(callback) {
window.SysClientJs.getLocation(Fw.getFunctionName(callback));
},
/**
* 是否横屏
*/
isLandscape : function(b) {
window.SysClientJs.setScreenOrientation(b);
},
/**
* 活体检测
*/
recongnition : function(callback) {
window.SysClientJs.openLiveness(Fw.getFunctionName(callback));
},
/**
* 签字版
*/
signaturePad : function(callback) {
var func = Fw.getFunctionName(callback);
var func1 = function(path, data) {
var c = eval(func);
new c(data);
};
window.SysClientJs.openSignaturePad(Fw.getFunctionName(func1));
},
/**
* 是否显示标题栏
*/
isShowTitle : function(b) {
window.SysClientJs.isShowTopBar(b);
},
/**
* 是否显示水印
*/
showWaterMark : function(b) {
window.SysClientJs.showWaterMark(b);
},
/**
* 防截屏控制
*/
screenCapture : function(b) {
window.SysClientJs.screenCapture(b);
},
docTransfrom : function(fileName) {
var params = {
fileName : fileName,
systemId : channelId
};
window.SysClientJs.previewPdf(JSON.stringify(params));
},
/**
* 背夹身份正 pad
*/
getBJIdCard : function(callback) {
window.SysClientJs.getLocationId(Fw.getFunctionName(callback));
},
/**
* 背夹Ic卡 pad
*/
getIcCard : function(callback) {
window.SysClientJs.getIcCard(Fw.getFunctionName(callback));
},
/**
* 背夹磁条卡 pad
*/
getStripeCard : function(callback) {
window.SysClientJs.getStripeCard(Fw.getFunctionName(callback));
},
/**
* 获取推送id pad
*/
getPushMsg : function(callback) {
window.SysClientJs.getPushId(Fw.getFunctionName(callback));
},
/**
* 下载文档并打开
*/
openOffice : function(url) {
var params = {
url : url
};
window.SysClientJs.previewHttp(JSON.stringify(params));
},
/**
* app唤起
*/
appCallUp : function(url, pakg, appName, downLoadUrl){
var params = {
url : url,
pakg : pakg,
appName : appName,
downLoadUrl : downLoadUrl
};
window.SysClientJs.awakenApp(JSON.stringify(params));
},
/**
* 获取门户app版本号
*/
getAppVersion : function(callback){
window.SysClientJs.getAppVersion(Fw.getFunctionName(callback));
},
uploadFile : function(url, filePath, callback){
var params = {
url : url,
path : filePath,
callBack : Fw.getFunctionName(callback),
};
window.SysClientJs.uploadFile(JSON.stringify(params));
},
video : function(callback){
window.SysClientJs.userVideo(Fw.getFunctionName(callback));
},
screen : function(callback){
window.SysClientJs.screen(Fw.getFunctionName(callback));
},
videoTalk : function(){
window.SysClientJs.videoTalk();
},
/**
* 保存图片(Base64)
*/
saveImageToBase64 : function(data){
window.SysClientJs.saveImageToGallery(data);
},
/**
* 分享,1、微信好友分享,2、微信朋友圈分享,3、支付宝分享
*/
share : function(type,data){
console.log(data);
if(type == 1){
window.SysClientJs.wXFriendShare(JSON.stringify(data));
}else if(type ==2){
window.SysClientJs.wXCircleShare(JSON.stringify(data));
}else if(type ==3){
window.SysClientJs.alipayShare(JSON.stringify(data));
}
},
/**
* 二维码扫描
*/
scanQR : function(callback){
window.SysClientJs.scan(Fw.getFunctionName(callback));
},
/**
* 打电话
*/
callPhone : function(phoneNo) {
window.SysClientJs.dialPhone(phoneNo);
},
/**
* 唤起密码键盘
*/
pwKeyBoard : function(callback){
window.SysClientJs.toLock(Fw.getFunctionName(callback));
},
/**
* 混淆加密文件
*/
mixEncrypt : function(data, token){
window.SysClientJs.encrypt(data, token, function(msg){
console.log(msg);
});
},
/**
* 混淆解密
*/
mixDecrypt : function(token, callback){
window.SysClientJs.decrypt(token, Fw.getFunctionName(callback));
}
};
channelName = channelName;
var u = navigator.userAgent;
if (u.indexOf('iPhone') > -1 || u.indexOf('iPad') > -1) {// 苹果手机
YT = iphone;
} else if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) {
YT = android;
}
var Fw = {
idSeed : Math.round(Math.random()*100000),
// private property
_keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
/**
* 返回一个id
*
* @returns {string}
*/
id : function() {
return 'fw_gen_' + (++Fw.idSeed);
},
/**
* 空方法
*/
emptyFn : function() {
},
/**
* 将sessionStorage中的信息保存到客户端中<br>
* (客户端从h5跳转到webview时,客户端主动调用Fw.stop方法)
*
* @returns {String}
*/
stop : function() {
var json = {};
for (var i = 0; i < sessionStorage.length; i++) {
var key = sessionStorage.key(i);
var val = sessionStorage.getItem(key);
json[key] = val.replace(/\"/g, "+");
}
var str = "";
if (!Fw.isEmpty(json)) {
str = JSON.stringify(json);
}
if (window.Device.os == "android") {
window.SysClientJs.setWebSession(str);
} else {
return str;
}
},
/**
* 页面初始化时将stop方法传给客户端中的信息保存到sessionStorage中
*/
start : function() {
var run = true;
try {
if (sessionStorage.length == 0) {
if (Fw.os == "android") {
run = false;
window.SysClientJs.getWebSession();
} else if (Fw.os == "iphone") {
run = false;
setWebitEvent("{}", "39");
}
}
} catch (e) {
}
run && Fw.afterInitSession();
},
initSession : function(jsonStr) {
try {
if (jsonStr) {
var json = Fw.JsonEval(jsonStr);
if (Fw.isObject(json)) {
$.each(json, function(key, val) {
val = val.replace(/\+/g, "\"");
sessionStorage.setItem(key, val);
});
}
}
} catch (e) {
alert(e);
}
try {
Fw.afterInitSession();
} catch (e) {
alert(e);
}
},
afterInitSession : function() {
},
/**
* 定义命名空间
*
* @returns {*} 返回命名空间
*/
namespace : function() {
var space = null, path;
Fw.each(arguments, function(v) {
path = v.split('.');
space = window[path[0]] = window[path[0]] || {};
Fw.each(path.slice(1), function(v2) {
space = space[v2] = space[v2] || {};
});
});
return space;
},
/**
* 属性复制(同jQuery的$.extend)
*
* @param object
* @param config
* @param defaults
* @returns {*}
*/
apply : function(object, config, defaults) {
if (defaults) {
Fw.apply(object, defaults);
}
if (object && config && Fw.isObject(config)) {
for ( var property in config) {
object[property] = config[property];
}
}
return object;
},
/**
* 属性复制(仅复制object中不存在的属性)
*
* @param object
* @param config
* @returns {*}
*/
applyIf : function(object, config) {
if (object) {
for ( var p in config) {
if (!Fw.isDefined(object[p])) {
object[p] = config[p];
}
}
}
return object;
},
/**
* 继承
*/
extend : function() {
var objectConstructor = Object.prototype.constructor, inlineOverrides = function(
o) {
for ( var m in o) {
if (!o.hasOwnProperty(m)) {
continue;
}
this[m] = o[m];
}
};
return function(subclass, superclass, overrides) {
if (Fw.isObject(superclass)) {
overrides = superclass;
superclass = subclass;
subclass = overrides.constructor !== objectConstructor ? overrides.constructor
: function() {
superclass.apply(this, arguments);
};
}
if (!superclass) {
return null;
}
//
var F = function() {
};
var subclassProto, superclassProto = superclass.prototype;
F.prototype = superclassProto;
subclassProto = subclass.prototype = new F();
subclassProto.constructor = subclass;
subclass.superclass = superclassProto;
if (superclassProto.constructor === objectConstructor) {
superclassProto.constructor = superclass;
}
subclass.override = function(overrides) {
Fw.override(subclass, overrides);
};
subclassProto.override = inlineOverrides;
subclassProto.proto = subclassProto;
subclass.override(overrides);
subclass.extend = function(o) {
return Fw.extend(subclass, o);
};
return subclass;
};
}(),
/**
* 覆盖
*
* @param cls
* {object} 源对象
* @param overrides
* {object} 新对象
*/
override : function(cls, overrides) {
Fw.apply(cls.prototype, overrides);
},
/**
* 转换为字符
*
* @param v
* {object}
* @returns {string}
*/
toString : function(v) {
return Object.prototype.toString.apply(v);
},
/**
* 判断值是否已定义
*
* @param v
* {*}
* @returns {boolean}
*/
isDefined : function(v) {
return typeof v !== 'undefined';
},
/**
* 是否为空
*
* @param v
* {*} 值
* @param allowBlank
* {boolean} 是否允许空
* @returns {boolean|*}
*/
isEmpty : function(v, allowBlank) {
return v === null || v === undefined
|| String(v).toUpperCase() === 'NULL'
|| ((Fw.isArray(v) && !v.length))
|| (!allowBlank ? v === '' : false);
},
/**
* 是否是数组
*
* @param v
* @returns {boolean}
*/
isArray : function(v) {
return Fw.toString(v) === '[object Array]';
},
/**
* 是否是日期
*
* @param v
* @returns {boolean}
*/
isDate : function(v) {
return Fw.toString(v) === '[object Date]';
},
/**
* 是否是对象
*
* @param v
* @returns {boolean}
*/
isObject : function(v) {
return !!v && Fw.toString(v) === '[object Object]';
},
/**
* 是否是函数
*
* @param v
* @returns {boolean}
*/
isFunction : function(v) {
return Fw.toString(v) === '[object Function]';
},
/**
* 是否是数值型
*
* @param v
* @returns {boolean}
*/
isNumber : function(v) {
return typeof v === 'number' && isFinite(v);
},
/**
* 是否是字符型
*
* @param v
* @returns {boolean}
*/
isString : function(v) {
return typeof v === 'string';
},
/**
* 是否是布尔型
*
* @param v
* @returns {boolean}
*/
isBoolean : function(v) {
return typeof v === 'boolean';
},
/**
* 是否是原始类型
*
* @param v
* @returns {*|boolean}
*/
isPrimitive : function(v) {
return Fw.isString(v) || Fw.isNumber(v) || Fw.isBoolean(v);
},
/**
* 是否可迭代
*
* @param v
* @returns {*}
*/
isIterable : function(v) {
return (v && typeof v !== 'string') ? Fw.isDefined(v.length) : false;
},
/**
* 是否是URL
*
* @param v
* @returns {boolean}
*/
isUrl : function(v) {
return /(((^https?)|(^ftp)):\/\/((([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*)|(localhost|LOCALHOST|127.0.0.1))\/?)/i
.test(v);
},
/**
* 获取指定位数的随机数
*
* @param num
* @returns {string}
*/
getRandom : function(num) {
var tmp = "";
if (num && num > 0) {
for (var i = 0; i < num; i++) {
tmp += Math.floor(Math.random() * 10);
}
}
return tmp;
},
/**
* 获取验证码回调
*
* @param 参数
* @callback 回调函数
*/
transInfoSessionSave : function(params, callback) {
Fw.Util.transInfoSessionSave(params, callback)
},
/*
* 获取用户登录后的信息
*/
getUserSessionInfor : function(callback) {
Fw.Util.getUserSessionInfor(callback)
},
queryAcctProtect : function(callback) {
Fw.AcctUtil.queryAcctProtect(callback)
},
getAcctProtect : function() {
return Fw.AcctUtil.getAcctProtect();
},
/**
* 页面跳转
*
* @param url
* @param params
*/
redirect : function(url, params) {
var search = document.location.search;
if (!Fw.isEmpty(search)) {
search = search.replace(/(&?)t=[^&]+/g, '');
search = search.replace(/(&?)parameters=[^&]+/g, '');
url += search === '?' ? '' : search;
}
url += (url.indexOf('?') > 0 ? '&' : '?') + 't=' + new Date().getTime();
if (!Fw.isEmpty(params)) {
sessionStorage.setItem("_parameters", Fw.JsonToStr(params));
}
document.location.href = url;
},
/**
* 返回parameters参数 特指页面跳转间传递的参数
*
* @returns {*}
*/
getParameters : function() {
var params = sessionStorage.getItem("_parameters");
sessionStorage.removeItem("_parameters");
// params = Fw.isEmpty(params) ? {} : params;
return Fw.JsonEval(params);
},
/**
* 清空 页面间跳转的参数
*/
clearParameters : function() {
sessionStorage.removeItem("_parameters");
},
/**
* 遍历数组
*
* @param value
* @param fn
* @param scope
* @returns {number}
*/
each : function(value, fn, scope) {
if (Fw.isEmpty(value)) {
return;
}
if (!Fw.isDefined(scope)) {
scope = value;
}
if (Fw.isObject(value)) {
var i = 0;
for ( var prop in value) {
if (value.hasOwnProperty(prop)) {
if (fn.call(scope || value, prop, value[prop], i++, value) === false) {
return;
}
}
}
} else {
if (!Fw.isIterable(value) || Fw.isPrimitive(value)) {
value = [ value ];
}
for (var i = 0, len = value.length; i < len; i++) {
if (fn.call(scope || value[i], value[i], i, value) === false) {
return i;
}
}
}
},
/**
* 绑定作用域
*
* @param fn
* @param scope
* @returns {*}
*/
bind : function(fn, scope) {
if (!Fw.isFunction(fn)) {
return fn;
}
return function() {
return fn.apply(scope, arguments);
};
},
/**
* 页面加载完成后操作
*
* @param app
*/
onReady : function(app) {
this.initEvent();
if (app.init) {
Fw.log.debug("--onReady--", "App");
var deps = seajs.parseDependencies(app.init.toString());
if (Fw.isArray(deps)) {
if (app.requires && app.requires.length > 0) {
deps = deps.concat(app.requires);
console.log(deps);
}
Fw.define(deps, Fw.bind(app.init, app));
} else {
Fw.define(Fw.bind(app.init, app));
}
} else {
Fw.define(app);
}
},
/**
* 定义模块 桥接Seajs http://seajs.org
*
* @param factory
*/
define : function(factory) {
var args = arguments;
if (args.length > 1 || !Fw.isFunction(factory)) {
define.apply(this, args);
} else {
define.call(this, factory);
}
},
/**
* 模版 桥接Juicer http://juicer.name
*
* @returns {*}
*/
template : function() {
var args = arguments;
var tpl = args[0];
if (Fw.isArray(tpl)) {
if (tpl.length > 1) {
var arr = [], funs = {};
// 从模版中分出自定义函数
Fw.each(tpl, function(item) {
if (Fw.isObject(item)) {
Fw.apply(funs, item);
} else {
arr.push(item);
}
});
// 注册自定义函数
Fw.each(funs, function(prop, fun) {
if (Fw.isFunction(fun)) {
juicer.register(prop, fun);
}
});
//
args[0] = arr.join('');
} else {
args[0] = tpl[0];
}
}
return juicer.apply(this, args);
},
/**
* 查询当前日前几天的日期
*
* @param AddDayCount
* {int} 负数为前X天 正数为后X天
* @returns {string}
* @exaple Fw.getDate(-6)
*/
getDate : function(AddDayCount) { // 日期查询
var dd = new Date();
dd.setDate(dd.getDate() + AddDayCount + 1);
var y = dd.getYear() + 1900;
var m = (dd.getMonth() + 1) < 10 ? "0" + (dd.getMonth() + 1) : (dd
.getMonth() + 1);
var d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate();
return y + "-" + m + "-" + d;
},
/**
* JSON对象转换为String
*
* @param json
* @constructor
*/
JsonToStr : function(json) {
return JSON.stringify(json);
},
/**
* String转换为JSON
*
* @param str
* @returns {Object}
* @constructor
*/
JsonEval : function(str) {
return eval("(" + str + ")");
// return JSON.parse(str);
},
/**
* 返回客户端上一级
*/
gotoBack : function() {
Fw.Client.gotoBack();
},
/**
* 返回上一个页面
*/
gotoPageBack : function(){
console.log('back');
window.history.back();
},
/* ===================客户端交互事件 end====================== */
/**
* 获取方法名称
*
* @param func
* 方法对象
* @param decodeURL
* 是否转码,如果该函数的接收参数中包含URL,则该参数需要置为true
* @returns {*}
*/
getFunctionName : function(func, decodeURL) {
if (func == null || func == "") {
return "";
}
if (Object.prototype.toString.apply(func) !== '[object Function]') {
return func;
}
var funcName = Fw.id();
console.log(funcName);
// 创建可被调用的临时方法
window[funcName] = function() {
var args = [];
Fw.each(arguments, function(arg) {
if (true == decodeURL) {
arg = decodeURIComponent(arg);
}
if ('string' == typeof arg && '{' == arg.charAt(0)
&& '}' == arg.charAt(arg.length - 1)) {
arg = Fw.JsonEval(arg.replace(/<\/?[^>]*>/g, '').replace(
/[\r\n]/g, '<br>'));
}
args.push(arg);
}, this);
func.apply(this, args);
delete window[funcName];// 删除临时方法
};
return funcName;
},
encodeBase64 : function(input) {
var output = "";
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
var i = 0;
input = Fw._utf8_encodeBase64(input);
while (i < input.length) {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}
output = output + Fw._keyStr.charAt(enc1) + Fw._keyStr.charAt(enc2)
+ Fw._keyStr.charAt(enc3) + Fw._keyStr.charAt(enc4);
}
return output;
},
// public method for decoding
decodeBase64 : function(input) {
var output = "";
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
while (i < input.length) {
enc1 = Fw._keyStr.indexOf(input.charAt(i++));
enc2 = Fw._keyStr.indexOf(input.charAt(i++));
enc3 = Fw._keyStr.indexOf(input.charAt(i++));
enc4 = Fw._keyStr.indexOf(input.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;
output = output + String.fromCharCode(chr1);
if (enc3 != 64) {
output = output + String.fromCharCode(chr2);
}
if (enc4 != 64) {
output = output + String.fromCharCode(chr3);
}
}
output = Fw._utf8_decodeBase64(output);
return output;
},
// private method for UTF-8 encoding
_utf8_encodeBase64 : function(string) {
string = string.replace(/\r\n/g, "\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
} else if ((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
} else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
},
// private method for UTF-8 decoding
_utf8_decodeBase64 : function(utftext) {
var string = "";
var i = 0;
var c = c1 = c2 = 0;
while (i < utftext.length) {
c = utftext.charCodeAt(i);
if (c < 128) {
string += String.fromCharCode(c);
i++;
} else if ((c > 191) && (c < 224)) {
c2 = utftext.charCodeAt(i + 1);
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2;
} else {
c2 = utftext.charCodeAt(i + 1);
c3 = utftext.charCodeAt(i + 2);
string += String.fromCharCode(((c & 15) << 12)
| ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}
return string;
}
};
export default { YT, Fw}
2.使用
import appApi from '../../common/share.js'
mounted() {
appApi.YT.share(1);
}