///
///
/**
* 这是SSDK-Impl的JS实现类
* @author westsky
* @description Html 5+ 是SSDK的库的声明文件
*/
// function isfn(fun: any): boolean{
// return typeof fun !== 'function';
// }
let _SERVICE = "SSDK";
// let B = window.plus.bridge as plus.bridge;
// let T = window.plus.tools as plus.tools;
class _RefObject {
uuid: string;
xs: string;
destroy(): void {
let B = (window).plus.bridge as plus.bridge;
let uuid = this.uuid;
let xs = this.xs;
B.execSync(_SERVICE, "destroy", [xs, uuid]);
}
}
class _WebClient extends _RefObject {
method?: string;
blocksize?: number;
priority?: number;
timeout?: number;
readTimeout?: number;
retryCount?: number;
retryInterval?: number;
onStatechanged(stateCB: WebClientStateChangedCallback): void {
let B = (window).plus.bridge as plus.bridge;
let uuid = this.uuid;
let xs = this.xs;
var _stateCB =
typeof stateCB !== "function"
? null
: function(state) {
stateCB(state);
};
let callbackID = B.callbackId(_stateCB);
B.exec(_SERVICE, "onStatechanged", [callbackID, xs, uuid]);
}
onProgressChanged(progressCB: WebClientProgressCallback): void {
let B = (window).plus.bridge as plus.bridge;
let uuid = this.uuid;
let xs = this.xs;
var _progressCB =
typeof progressCB !== "function"
? null
: function(progress: number) {
progressCB(progress);
};
let callbackID = B.callbackId(_progressCB);
B.exec(_SERVICE, "onProgressChanged", [callbackID, xs, uuid]);
}
post(
url: string,
message: plus.ssdk.ProtocolMessage,
successCB?: WebClientSuccessCallback,
errorCB?: WebClientErrorCallback
) {
let B = (window).plus.bridge as plus.bridge;
let uuid = this.uuid;
let xs = this.xs;
var success =
typeof successCB !== "function"
? null
: function(result) {
successCB(result);
};
var fail =
typeof errorCB !== "function"
? null
: function(error) {
errorCB(error);
};
var callbackID = B.callbackId(success, fail);
return B.exec(_SERVICE, "post", [callbackID, xs, uuid, url, message]);
}
uploadFile(
url: string,
message: plus.ssdk.ProtocolMessage,
successCB?: WebClientSuccessCallback,
errorCB?: WebClientErrorCallback
) {
let B = (window).plus.bridge as plus.bridge;
let uuid = this.uuid;
let xs = this.xs;
var success =
typeof successCB !== "function"
? null
: function(result) {
successCB(result);
};
var fail =
typeof errorCB !== "function"
? null
: function(error) {
errorCB(error);
};
var callbackID = B.callbackId(success, fail);
return B.exec(_SERVICE, "uploadFile", [callbackID, xs, uuid, url, message]);
}
downloadFile(
url: string,
message: plus.ssdk.ProtocolMessage,
fullFileName: string,
successCB?: WebClientSuccessCallback,
errorCB?: WebClientErrorCallback
) {
let B = (window).plus.bridge as plus.bridge;
let uuid = this.uuid;
let xs = this.xs;
var success =
typeof successCB !== "function"
? null
: function(result) {
successCB(result);
};
var fail =
typeof errorCB !== "function"
? null
: function(error) {
errorCB(error);
};
var callbackID = B.callbackId(success, fail);
return B.exec(_SERVICE, "downloadFile", [
callbackID,
xs,
uuid,
url,
message
]);
}
}
class _SSDK {
/**
* 调试参数
* @param arg
*/
hello(args: string) {
let B = (window).plus.bridge as plus.bridge;
let callbackID = B.callbackId(null, null);
return B.exec(_SERVICE, "hello", [callbackID, args]);
}
//---------------------------------------------------------------
captureImage(
cameraParam: plus.ssdk.CameraParam,
successCB: plus.camera.CameraSuccessCallback,
errorCB: plus.camera.CameraErrorCallback
) {
let B = (window).plus.bridge as plus.bridge;
var _successCB =
typeof successCB !== "function"
? null
: function(path) {
successCB(path);
};
var _failCB =
typeof errorCB !== "function"
? null
: function(error) {
errorCB(error);
};
var callbackID = B.callbackId(_successCB, _failCB);
return B.exec(_SERVICE, "captureImage", [callbackID, cameraParam]);
}
captureVideo(
cameraParam: plus.ssdk.CameraParam,
successCB: plus.camera.CameraSuccessCallback,
errorCB: plus.camera.CameraErrorCallback
) {
let B = (window).plus.bridge as plus.bridge;
var _successCB =
typeof successCB !== "function"
? null
: function(path) {
successCB(path);
};
var _failCB =
typeof errorCB !== "function"
? null
: function(error) {
errorCB(error);
};
var callbackID = B.callbackId(_successCB, _failCB);
return B.exec(_SERVICE, "captureVideo", [callbackID, cameraParam]);
}
//------------------------------------------------------
httpPost(
url: string,
message: plus.ssdk.ProtocolMessage,
successCB?: WebClientSuccessCallback,
errorCB?: WebClientErrorCallback,
options?: plus.ssdk.WebOptions
) {
let B = (window).plus.bridge as plus.bridge;
var _successCB =
typeof successCB !== "function"
? null
: function(result) {
successCB(result);
};
var _failCB =
typeof errorCB !== "function"
? null
: function(error) {
errorCB(error);
};
var callbackID = B.callbackId(_successCB, _failCB);
return B.exec(_SERVICE, "httpPost", [callbackID, url, message, options]);
}
//------------------------------------------------------
createRef(
clazz: string,
xs?: string,
args?: any
): _WebClient | any {
let B = (window).plus.bridge as plus.bridge;
let T = (window).plus.tools as plus.tools;
let uuid = T.UUID("ssdk");
let ret = B.execSync(_SERVICE, "createRef", [
clazz,
uuid,
xs,
args
]) as plus.ssdk.WebClient;
let wc = new _WebClient();
wc.uuid = uuid;
wc.xs = xs;
wc.blocksize = ret.blocksize;
wc.method = ret.method;
wc.priority = ret.priority;
wc.readTimeout = ret.readTimeout;
wc.timeout = ret.timeout;
return wc;
}
releaseRef(obj: K): void {
let B = (window).plus.bridge as plus.bridge;
B.execSync(_SERVICE, "releaseRef", [obj]);
}
getRef(xs: string, uuid: string): T | any {
let B = (window).plus.bridge as plus.bridge;
let ret = B.execSync(_SERVICE, "getObject", [xs, uuid]);
if (ret) {
let wc = new _WebClient();
wc.uuid = uuid;
wc.xs = xs;
wc.blocksize = ret.blocksize;
wc.method = ret.method;
wc.priority = ret.priority;
wc.readTimeout = ret.readTimeout;
wc.timeout = ret.timeout;
return wc;
}
return null;
}
getAllRef(
xs: string,
resultsCB?: ResultsCallback
): void {
let B = (window).plus.bridge as plus.bridge;
let fuResultCB =
typeof resultsCB !== "function"
? null
: function(results) {
resultsCB(results);
};
let callbackID = B.callbackId(fuResultCB);
B.exec(_SERVICE, "getAllRef", [callbackID, xs]);
}
}
//-------------------------------------------------
document.addEventListener(
"plusready",
function() {
// let _SERVICE = 'SSDK';
// let B = window.plus.bridge as plus.bridge;
// let T = window.plus.tools as plus.tools;
let ssdk = new _SSDK();
(window).plus.ssdk = ssdk;
},
true
);