(function(window) {
var doc = window.document;
var ua = window.navigator.userAgent.toLowerCase();
var _s = undefined;
_s = {
// The load is complete and ready to execute
ready : function(fn) {
if (_s._u.isFunction(fn)) {
(fn)();
} else {
throw _s._ex.ARGS_TYPE_ERROR;
}
},
request : function(p) {
if (_s._u.isObject(p)) {
if (_s._u.isIos(ua)) {
window.webkit.messageHandlers.request.postMessage(p);
} else if (_s._u.isAndroid(ua)) {
//TODO
} else {
throw _s._ex.DEV_TYPE_ERROR;
}
} else {
throw _s._ex.ARGS_TYPE_ERROR;
}
},
version : "1.0",
_u : {
isObject : function(p) {
return _s._u.typeToString(p) === "[object Object]";
},
isFunction : function(p) {
return _s._u.typeToString(p) === "[object Function]";
},
typeToString : function(p) {
return Object.prototype.toString.call(p);
},
isAndroid : function(p) {
return /(Android)/i.test(p);
},
isIos : function(p) {
return /(iPhone|iPad|iPod|iOS)/i.test(p);
}
},
_ex : {
ARGS_TYPE_ERROR : new Error("arguments type error"),
DEV_TYPE_ERROR : new Error("not support device type")
}
};
window.lu = _s;
})(window);