第一次提交
This commit is contained in:
commit
0686e2be81
|
@ -0,0 +1,36 @@
|
||||||
|
|
||||||
|
<widget id="A1918780067366305800" version="0.0.1">
|
||||||
|
<name>新疆农牧投饲料厂</name>
|
||||||
|
<description>
|
||||||
|
|
||||||
|
Example For yonyou.
|
||||||
|
|
||||||
|
</description>
|
||||||
|
<author email="developer@yonyou.com" href="https://developer.yonyou.com/">
|
||||||
|
|
||||||
|
Developer
|
||||||
|
|
||||||
|
</author>
|
||||||
|
<content src="html/index.html"/>
|
||||||
|
<access origin="*"/>
|
||||||
|
<preference name="pageBounce" value="false"/>
|
||||||
|
<preference name="appBackground" value="rgba(0,0,0,0.0)"/>
|
||||||
|
<preference name="windowBackground" value="rgba(0,0,0,0.0)"/>
|
||||||
|
<preference name="frameBackgroundColor" value="rgba(0,0,0,0.0)"/>
|
||||||
|
<preference name="hScrollBarEnabled" value="false"/>
|
||||||
|
<preference name="vScrollBarEnabled" value="false"/>
|
||||||
|
<preference name="autoLaunch" value="true"/>
|
||||||
|
<preference name="fullScreen" value="false"/>
|
||||||
|
<preference name="autoUpdate" value="true"/>
|
||||||
|
<preference name="smartUpdate" value="false"/>
|
||||||
|
<preference name="debug" value="true"/>
|
||||||
|
<preference name="statusBarAppearance" value="true"/>
|
||||||
|
<permission name="readPhoneState"/>
|
||||||
|
<permission name="camera"/>
|
||||||
|
<permission name="record"/>
|
||||||
|
<permission name="location"/>
|
||||||
|
<permission name="fileSystem"/>
|
||||||
|
<permission name="internet"/>
|
||||||
|
<permission name="bootCompleted"/>
|
||||||
|
<permission name="hardware"/>
|
||||||
|
</widget>
|
|
@ -0,0 +1,81 @@
|
||||||
|
html{
|
||||||
|
font-family: sans-serif;
|
||||||
|
}
|
||||||
|
html,body,header,section,footer,div,ul,ol,li,img,a,span,em,del,legend,center,strong,var,fieldset,form,label,dl,dt,dd,cite,input,hr,time,mark,code,figcaption,figure,textarea,h1,h2,h3,h4,h5,h6,p{
|
||||||
|
margin:0;
|
||||||
|
border:0;
|
||||||
|
padding:0;
|
||||||
|
font-style:normal;
|
||||||
|
}
|
||||||
|
html,body {
|
||||||
|
-webkit-touch-callout:none;
|
||||||
|
-webkit-text-size-adjust:none;
|
||||||
|
-webkit-tap-highlight-color:rgba(0, 0, 0, 0);
|
||||||
|
-webkit-user-select:none;
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
nav,article,aside,details,main,header,footer,section,fieldset,figcaption,figure{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
img,a,button,em,del,strong,var,label,cite,small,time,mark,code,textarea{
|
||||||
|
display:inline-block;
|
||||||
|
}
|
||||||
|
header,section,footer {
|
||||||
|
position:relative;
|
||||||
|
}
|
||||||
|
ol,ul{
|
||||||
|
list-style:none;
|
||||||
|
}
|
||||||
|
input,button,textarea {
|
||||||
|
border:0;
|
||||||
|
margin:0;
|
||||||
|
padding:0;
|
||||||
|
font-size:1em;
|
||||||
|
line-height:1em;
|
||||||
|
/*-webkit-appearance:none;*/
|
||||||
|
background-color:rgba(0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
span{
|
||||||
|
display:inline-block;
|
||||||
|
}
|
||||||
|
a:active, a:hover {
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
a, a:visited{
|
||||||
|
text-decoration:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
label, .wordWrap{
|
||||||
|
word-wrap: break-word;
|
||||||
|
word-break: break-all;
|
||||||
|
}
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0;
|
||||||
|
}
|
||||||
|
td,th {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.clearfix:after{
|
||||||
|
content: ' ';
|
||||||
|
display: block;
|
||||||
|
clear: both;
|
||||||
|
visibility:hidden;
|
||||||
|
line-height: 0;
|
||||||
|
height:0;
|
||||||
|
}
|
||||||
|
.loading_more{
|
||||||
|
display: block;
|
||||||
|
height: 1.5em;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.loading_more:before {
|
||||||
|
display: inline-block; vertical-align: text-bottom;
|
||||||
|
content: ' '; height: 16px; width: 16px; margin-right: 6px;
|
||||||
|
background: url(../image/loading_more.gif) no-repeat center;
|
||||||
|
-webkit-background-size: contain;
|
||||||
|
background-size: contain;
|
||||||
|
}
|
||||||
|
.loading_more:after {
|
||||||
|
content: '加载更多';
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
此目录是平台特性相关目录
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
After Width: | Height: | Size: 36 KiB |
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,69 @@
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="maximum-scale=1.0, minimum-scale=1.0, user-scalable=0, initial-scale=1.0, width=device-width" />
|
||||||
|
<meta name="format-detection" content="telephone=no, email=no, date=no, address=no">
|
||||||
|
<title>Hello APP</title>
|
||||||
|
<link rel="stylesheet" type="text/css" href="../css/apiutil.css" />
|
||||||
|
<style>
|
||||||
|
label {
|
||||||
|
margin: 10px;
|
||||||
|
font-size: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul li {
|
||||||
|
margin: 5px 10px;
|
||||||
|
padding: 5px;
|
||||||
|
color: #000;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<label>Hello APP</label>
|
||||||
|
<div id='sys-info'></div>
|
||||||
|
</body>
|
||||||
|
<script type="text/javascript" src="../script/apiutil.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
apiready = function() {
|
||||||
|
var ver = api.version;
|
||||||
|
var sType = api.systemType;
|
||||||
|
var sVer = api.systemVersion;
|
||||||
|
var model = api.deviceModel;
|
||||||
|
var name = api.deviceName;
|
||||||
|
var cType = api.connectionType;
|
||||||
|
var winName = api.winName;
|
||||||
|
var winWidth = api.winWidth;
|
||||||
|
var winHeight = api.winHeight;
|
||||||
|
var frameName = api.frameName || '';
|
||||||
|
var frameWidth = api.frameWidth || '';
|
||||||
|
var frameHeight = api.frameHeight || '';
|
||||||
|
|
||||||
|
var str = '<ul>';
|
||||||
|
str += '<li>引擎版本信息: ' + ver + '</li>';
|
||||||
|
str += '<li>系统类型: ' + sType + '</li>';
|
||||||
|
str += '<li>系统版本: ' + sVer + '</li>';
|
||||||
|
str += '<li>设备型号: ' + model + '</li>';
|
||||||
|
str += '<li>设备名称: ' + name + '</li>';
|
||||||
|
str += '<li>网络状态: ' + cType + '</li>';
|
||||||
|
str += '<li>主窗口名字: ' + winName + '</li>';
|
||||||
|
str += '<li>主窗口宽度: ' + winWidth + '</li>';
|
||||||
|
str += '<li>主窗口高度: ' + winHeight + '</li>';
|
||||||
|
str += '<li>子窗口名字: ' + frameName + '</li>';
|
||||||
|
str += '<li>子窗口宽度: ' + frameWidth + '</li>';
|
||||||
|
str += '<li>子窗口高度: ' + frameHeight + '</li>';
|
||||||
|
str += '</ul>';
|
||||||
|
|
||||||
|
$api.byId('sys-info').innerHTML = str;
|
||||||
|
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</html>
|
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
Binary file not shown.
After Width: | Height: | Size: 5.8 KiB |
|
@ -0,0 +1,89 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,initial-scale=1.0,width=device-width" />
|
||||||
|
<meta name="format-detection" content="telephone=no,email=no,date=no,address=no">
|
||||||
|
<title>Hello APP</title>
|
||||||
|
<link rel="stylesheet" type="text/css" href="./css/apiutil.css" />
|
||||||
|
<style type="text/css">
|
||||||
|
html,
|
||||||
|
body {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wrap {
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-flex-flow: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
header {
|
||||||
|
height: 44px;
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
background-color: #81a9c3;
|
||||||
|
color: #fff;
|
||||||
|
line-height: 44px;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex-1 {
|
||||||
|
-webkit-box-flex: 1;
|
||||||
|
-webkit-flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer {
|
||||||
|
height: 30px;
|
||||||
|
width: 100%;
|
||||||
|
background-color: #81a9c3;
|
||||||
|
color: white;
|
||||||
|
line-height: 30px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="wrap">
|
||||||
|
<header>APP</header>
|
||||||
|
<section class="flex-1">
|
||||||
|
|
||||||
|
</section>
|
||||||
|
<footer>Copyright © 2014-<span id="year"></span></footer>
|
||||||
|
</body>
|
||||||
|
<script type="text/javascript" src="./script/apiutil.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
apiready = function() {
|
||||||
|
//输出Log,Log将显示在 Studio 控制台
|
||||||
|
console.log("Hello World! Hello APP!");
|
||||||
|
|
||||||
|
var header = $api.dom('header'); // 获取 header 标签元素
|
||||||
|
var footer = $api.dom('footer'); // 获取 footer 标签元素
|
||||||
|
|
||||||
|
// 1.修复开启沉浸式效果带来的顶部Header与手机状态栏重合的问题,最新apiutil.js方法已支持适配iPhoneX;
|
||||||
|
// 2.默认已开启了沉浸式效果 config.xml中 <preference name="statusBarAppearance" value="true"/>
|
||||||
|
// 3.沉浸式效果适配支持iOS7+,Android4.4+以上版本
|
||||||
|
var headerH = $api.fixStatusBar(header);
|
||||||
|
// 最新apiutil.js为了适配iPhoneX增加的方法,修复底部Footer部分与iPhoneX的底部虚拟横条键重叠的问题;
|
||||||
|
var footerH = $api.fixTabBar(footer);
|
||||||
|
|
||||||
|
api.openFrame({
|
||||||
|
name: 'main',
|
||||||
|
url: 'html/main.html',
|
||||||
|
bounces: true,
|
||||||
|
rect: { // 推荐使用Margin布局,用于适配屏幕的动态变化
|
||||||
|
marginTop: headerH, // main页面距离win顶部的高度
|
||||||
|
marginBottom: footerH, // main页面距离win底部的高度
|
||||||
|
w: 'auto' // main页面的宽度 自适应屏幕宽度
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 获取当前年份时间,并加载显示到页面
|
||||||
|
var year = $api.byId('year');
|
||||||
|
year.innerHTML = new Date().getFullYear();
|
||||||
|
};
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</html>
|
Binary file not shown.
After Width: | Height: | Size: 42 KiB |
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<manifest>
|
||||||
|
<application name="targetSdkVersion" value="30"/>
|
||||||
|
</manifest>
|
|
@ -0,0 +1,591 @@
|
||||||
|
/*
|
||||||
|
* JavaScript Library
|
||||||
|
* Copyright (c) 2014
|
||||||
|
*/
|
||||||
|
(function(window){
|
||||||
|
var u = {};
|
||||||
|
var isAndroid = (/android/gi).test(navigator.appVersion);
|
||||||
|
var uzStorage = function(){
|
||||||
|
var ls = window.localStorage;
|
||||||
|
if(isAndroid){
|
||||||
|
ls = os.localStorage();
|
||||||
|
}
|
||||||
|
return ls;
|
||||||
|
};
|
||||||
|
function parseArguments(url, data, fnSuc, dataType) {
|
||||||
|
if (typeof(data) == 'function') {
|
||||||
|
dataType = fnSuc;
|
||||||
|
fnSuc = data;
|
||||||
|
data = undefined;
|
||||||
|
}
|
||||||
|
if (typeof(fnSuc) != 'function') {
|
||||||
|
dataType = fnSuc;
|
||||||
|
fnSuc = undefined;
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
url: url,
|
||||||
|
data: data,
|
||||||
|
fnSuc: fnSuc,
|
||||||
|
dataType: dataType
|
||||||
|
};
|
||||||
|
}
|
||||||
|
u.trim = function(str){
|
||||||
|
if(String.prototype.trim){
|
||||||
|
return str == null ? "" : String.prototype.trim.call(str);
|
||||||
|
}else{
|
||||||
|
return str.replace(/(^\s*)|(\s*$)/g, "");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
u.trimAll = function(str){
|
||||||
|
return str.replace(/\s*/g,'');
|
||||||
|
};
|
||||||
|
u.isElement = function(obj){
|
||||||
|
return !!(obj && obj.nodeType == 1);
|
||||||
|
};
|
||||||
|
u.isArray = function(obj){
|
||||||
|
if(Array.isArray){
|
||||||
|
return Array.isArray(obj);
|
||||||
|
}else{
|
||||||
|
return obj instanceof Array;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
u.isEmptyObject = function(obj){
|
||||||
|
if(JSON.stringify(obj) === '{}'){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
u.addEvt = function(el, name, fn, useCapture){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$api.addEvt Function need el param, el param must be DOM Element');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
useCapture = useCapture || false;
|
||||||
|
if(el.addEventListener) {
|
||||||
|
el.addEventListener(name, fn, useCapture);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
u.rmEvt = function(el, name, fn, useCapture){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$api.rmEvt Function need el param, el param must be DOM Element');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
useCapture = useCapture || false;
|
||||||
|
if (el.removeEventListener) {
|
||||||
|
el.removeEventListener(name, fn, useCapture);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
u.one = function(el, name, fn, useCapture){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$api.one Function need el param, el param must be DOM Element');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
useCapture = useCapture || false;
|
||||||
|
var that = this;
|
||||||
|
var cb = function(){
|
||||||
|
fn && fn();
|
||||||
|
that.rmEvt(el, name, cb, useCapture);
|
||||||
|
};
|
||||||
|
that.addEvt(el, name, cb, useCapture);
|
||||||
|
};
|
||||||
|
u.dom = function(el, selector){
|
||||||
|
if(arguments.length === 1 && typeof arguments[0] == 'string'){
|
||||||
|
if(document.querySelector){
|
||||||
|
return document.querySelector(arguments[0]);
|
||||||
|
}
|
||||||
|
}else if(arguments.length === 2){
|
||||||
|
if(el.querySelector){
|
||||||
|
return el.querySelector(selector);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
u.domAll = function(el, selector){
|
||||||
|
if(arguments.length === 1 && typeof arguments[0] == 'string'){
|
||||||
|
if(document.querySelectorAll){
|
||||||
|
return document.querySelectorAll(arguments[0]);
|
||||||
|
}
|
||||||
|
}else if(arguments.length === 2){
|
||||||
|
if(el.querySelectorAll){
|
||||||
|
return el.querySelectorAll(selector);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
u.byId = function(id){
|
||||||
|
return document.getElementById(id);
|
||||||
|
};
|
||||||
|
u.first = function(el, selector){
|
||||||
|
if(arguments.length === 1){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$api.first Function need el param, el param must be DOM Element');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
return el.children[0];
|
||||||
|
}
|
||||||
|
if(arguments.length === 2){
|
||||||
|
return this.dom(el, selector+':first-child');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
u.last = function(el, selector){
|
||||||
|
if(arguments.length === 1){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$api.last Function need el param, el param must be DOM Element');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var children = el.children;
|
||||||
|
return children[children.length - 1];
|
||||||
|
}
|
||||||
|
if(arguments.length === 2){
|
||||||
|
return this.dom(el, selector+':last-child');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
u.eq = function(el, index){
|
||||||
|
return this.dom(el, ':nth-child('+ index +')');
|
||||||
|
};
|
||||||
|
u.not = function(el, selector){
|
||||||
|
return this.domAll(el, ':not('+ selector +')');
|
||||||
|
};
|
||||||
|
u.prev = function(el){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$api.prev Function need el param, el param must be DOM Element');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var node = el.previousSibling;
|
||||||
|
if(node.nodeType && node.nodeType === 3){
|
||||||
|
node = node.previousSibling;
|
||||||
|
return node;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
u.next = function(el){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$api.next Function need el param, el param must be DOM Element');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var node = el.nextSibling;
|
||||||
|
if(node.nodeType && node.nodeType === 3){
|
||||||
|
node = node.nextSibling;
|
||||||
|
return node;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
u.closest = function(el, selector){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$api.closest Function need el param, el param must be DOM Element');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var doms, targetDom;
|
||||||
|
var isSame = function(doms, el){
|
||||||
|
var i = 0, len = doms.length;
|
||||||
|
for(i; i<len; i++){
|
||||||
|
if(doms[i].isSameNode(el)){
|
||||||
|
return doms[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
var traversal = function(el, selector){
|
||||||
|
doms = u.domAll(el.parentNode, selector);
|
||||||
|
targetDom = isSame(doms, el);
|
||||||
|
while(!targetDom){
|
||||||
|
el = el.parentNode;
|
||||||
|
if(el != null && el.nodeType == el.DOCUMENT_NODE){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
traversal(el, selector);
|
||||||
|
}
|
||||||
|
|
||||||
|
return targetDom;
|
||||||
|
};
|
||||||
|
|
||||||
|
return traversal(el, selector);
|
||||||
|
};
|
||||||
|
u.contains = function(parent,el){
|
||||||
|
var mark = false;
|
||||||
|
if(el === parent){
|
||||||
|
mark = true;
|
||||||
|
return mark;
|
||||||
|
}else{
|
||||||
|
do{
|
||||||
|
el = el.parentNode;
|
||||||
|
if(el === parent){
|
||||||
|
mark = true;
|
||||||
|
return mark;
|
||||||
|
}
|
||||||
|
}while(el === document.body || el === document.documentElement);
|
||||||
|
|
||||||
|
return mark;
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
u.remove = function(el){
|
||||||
|
if(el && el.parentNode){
|
||||||
|
el.parentNode.removeChild(el);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
u.attr = function(el, name, value){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$api.attr Function need el param, el param must be DOM Element');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(arguments.length == 2){
|
||||||
|
return el.getAttribute(name);
|
||||||
|
}else if(arguments.length == 3){
|
||||||
|
el.setAttribute(name, value);
|
||||||
|
return el;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
u.removeAttr = function(el, name){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$api.removeAttr Function need el param, el param must be DOM Element');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(arguments.length === 2){
|
||||||
|
el.removeAttribute(name);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
u.hasCls = function(el, cls){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$api.hasCls Function need el param, el param must be DOM Element');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(el.className.indexOf(cls) > -1){
|
||||||
|
return true;
|
||||||
|
}else{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
u.addCls = function(el, cls){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$api.addCls Function need el param, el param must be DOM Element');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if('classList' in el){
|
||||||
|
el.classList.add(cls);
|
||||||
|
}else{
|
||||||
|
var preCls = el.className;
|
||||||
|
var newCls = preCls +' '+ cls;
|
||||||
|
el.className = newCls;
|
||||||
|
}
|
||||||
|
return el;
|
||||||
|
};
|
||||||
|
u.removeCls = function(el, cls){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$api.removeCls Function need el param, el param must be DOM Element');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if('classList' in el){
|
||||||
|
el.classList.remove(cls);
|
||||||
|
}else{
|
||||||
|
var preCls = el.className;
|
||||||
|
var newCls = preCls.replace(cls, '');
|
||||||
|
el.className = newCls;
|
||||||
|
}
|
||||||
|
return el;
|
||||||
|
};
|
||||||
|
u.toggleCls = function(el, cls){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$api.toggleCls Function need el param, el param must be DOM Element');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if('classList' in el){
|
||||||
|
el.classList.toggle(cls);
|
||||||
|
}else{
|
||||||
|
if(u.hasCls(el, cls)){
|
||||||
|
u.removeCls(el, cls);
|
||||||
|
}else{
|
||||||
|
u.addCls(el, cls);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return el;
|
||||||
|
};
|
||||||
|
u.val = function(el, val){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$api.val Function need el param, el param must be DOM Element');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(arguments.length === 1){
|
||||||
|
switch(el.tagName){
|
||||||
|
case 'SELECT':
|
||||||
|
var value = el.options[el.selectedIndex].value;
|
||||||
|
return value;
|
||||||
|
break;
|
||||||
|
case 'INPUT':
|
||||||
|
return el.value;
|
||||||
|
break;
|
||||||
|
case 'TEXTAREA':
|
||||||
|
return el.value;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(arguments.length === 2){
|
||||||
|
switch(el.tagName){
|
||||||
|
case 'SELECT':
|
||||||
|
el.options[el.selectedIndex].value = val;
|
||||||
|
return el;
|
||||||
|
break;
|
||||||
|
case 'INPUT':
|
||||||
|
el.value = val;
|
||||||
|
return el;
|
||||||
|
break;
|
||||||
|
case 'TEXTAREA':
|
||||||
|
el.value = val;
|
||||||
|
return el;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
u.prepend = function(el, html){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$api.prepend Function need el param, el param must be DOM Element');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
el.insertAdjacentHTML('afterbegin', html);
|
||||||
|
return el;
|
||||||
|
};
|
||||||
|
u.append = function(el, html){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$api.append Function need el param, el param must be DOM Element');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
el.insertAdjacentHTML('beforeend', html);
|
||||||
|
return el;
|
||||||
|
};
|
||||||
|
u.before = function(el, html){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$api.before Function need el param, el param must be DOM Element');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
el.insertAdjacentHTML('beforebegin', html);
|
||||||
|
return el;
|
||||||
|
};
|
||||||
|
u.after = function(el, html){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$api.after Function need el param, el param must be DOM Element');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
el.insertAdjacentHTML('afterend', html);
|
||||||
|
return el;
|
||||||
|
};
|
||||||
|
u.html = function(el, html){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$api.html Function need el param, el param must be DOM Element');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(arguments.length === 1){
|
||||||
|
return el.innerHTML;
|
||||||
|
}else if(arguments.length === 2){
|
||||||
|
el.innerHTML = html;
|
||||||
|
return el;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
u.text = function(el, txt){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$api.text Function need el param, el param must be DOM Element');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(arguments.length === 1){
|
||||||
|
return el.textContent;
|
||||||
|
}else if(arguments.length === 2){
|
||||||
|
el.textContent = txt;
|
||||||
|
return el;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
u.offset = function(el){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$api.offset Function need el param, el param must be DOM Element');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var sl = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft);
|
||||||
|
var st = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
|
||||||
|
|
||||||
|
var rect = el.getBoundingClientRect();
|
||||||
|
return {
|
||||||
|
l: rect.left + sl,
|
||||||
|
t: rect.top + st,
|
||||||
|
w: el.offsetWidth,
|
||||||
|
h: el.offsetHeight
|
||||||
|
};
|
||||||
|
};
|
||||||
|
u.css = function(el, css){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$apiutil.css Function need el param, el param must be DOM Element');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(typeof css == 'string' && css.indexOf(':') > 0){
|
||||||
|
el.style && (el.style.cssText += ';' + css);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
u.cssVal = function(el, prop){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$apiutil.cssVal Function need el param, el param must be DOM Element');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(arguments.length === 2){
|
||||||
|
var computedStyle = window.getComputedStyle(el, null);
|
||||||
|
return computedStyle.getPropertyValue(prop);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
u.jsonToStr = function(json){
|
||||||
|
if(typeof json === 'object'){
|
||||||
|
return JSON && JSON.stringify(json);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
u.strToJson = function(str){
|
||||||
|
if(typeof str === 'string'){
|
||||||
|
return JSON && JSON.parse(str);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
u.setStorage = function(key, value){
|
||||||
|
if(arguments.length === 2){
|
||||||
|
var v = value;
|
||||||
|
if(typeof v == 'object'){
|
||||||
|
v = JSON.stringify(v);
|
||||||
|
v = 'obj-'+ v;
|
||||||
|
}else{
|
||||||
|
v = 'str-'+ v;
|
||||||
|
}
|
||||||
|
var ls = uzStorage();
|
||||||
|
if(ls){
|
||||||
|
ls.setItem(key, v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
u.getStorage = function(key){
|
||||||
|
var ls = uzStorage();
|
||||||
|
if(ls){
|
||||||
|
var v = ls.getItem(key);
|
||||||
|
if(!v){return;}
|
||||||
|
if(v.indexOf('obj-') === 0){
|
||||||
|
v = v.slice(4);
|
||||||
|
return JSON.parse(v);
|
||||||
|
}else if(v.indexOf('str-') === 0){
|
||||||
|
return v.slice(4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
u.rmStorage = function(key){
|
||||||
|
var ls = uzStorage();
|
||||||
|
if(ls && key){
|
||||||
|
ls.removeItem(key);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
u.clearStorage = function(){
|
||||||
|
var ls = uzStorage();
|
||||||
|
if(ls){
|
||||||
|
ls.clear();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
u.fixIos7Bar = function(el){
|
||||||
|
return u.fixStatusBar(el);
|
||||||
|
};
|
||||||
|
u.fixStatusBar = function(el){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$api.fixStatusBar Function need el param, el param must be DOM Element');
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
el.style.paddingTop = api.safeArea.top + 'px';
|
||||||
|
return el.offsetHeight;
|
||||||
|
};
|
||||||
|
u.fixTabBar = function(el){
|
||||||
|
if(!u.isElement(el)){
|
||||||
|
console.warn('$api.fixTabBar Function need el param, el param must be DOM Element');
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
el.style.paddingBottom = api.safeArea.bottom + 'px';
|
||||||
|
return el.offsetHeight;
|
||||||
|
};
|
||||||
|
u.toast = function(title, text, time){
|
||||||
|
var opts = {};
|
||||||
|
var show = function(opts, time){
|
||||||
|
api.showProgress(opts);
|
||||||
|
setTimeout(function(){
|
||||||
|
api.hideProgress();
|
||||||
|
},time);
|
||||||
|
};
|
||||||
|
if(arguments.length === 1){
|
||||||
|
var time = time || 500;
|
||||||
|
if(typeof title === 'number'){
|
||||||
|
time = title;
|
||||||
|
}else{
|
||||||
|
opts.title = title+'';
|
||||||
|
}
|
||||||
|
show(opts, time);
|
||||||
|
}else if(arguments.length === 2){
|
||||||
|
var time = time || 500;
|
||||||
|
var text = text;
|
||||||
|
if(typeof text === "number"){
|
||||||
|
var tmp = text;
|
||||||
|
time = tmp;
|
||||||
|
text = null;
|
||||||
|
}
|
||||||
|
if(title){
|
||||||
|
opts.title = title;
|
||||||
|
}
|
||||||
|
if(text){
|
||||||
|
opts.text = text;
|
||||||
|
}
|
||||||
|
show(opts, time);
|
||||||
|
}
|
||||||
|
if(title){
|
||||||
|
opts.title = title;
|
||||||
|
}
|
||||||
|
if(text){
|
||||||
|
opts.text = text;
|
||||||
|
}
|
||||||
|
time = time || 500;
|
||||||
|
show(opts, time);
|
||||||
|
};
|
||||||
|
u.post = function(/*url,data,fnSuc,dataType*/){
|
||||||
|
var argsToJson = parseArguments.apply(null, arguments);
|
||||||
|
var json = {};
|
||||||
|
var fnSuc = argsToJson.fnSuc;
|
||||||
|
argsToJson.url && (json.url = argsToJson.url);
|
||||||
|
argsToJson.data && (json.data = argsToJson.data);
|
||||||
|
if(argsToJson.dataType){
|
||||||
|
var type = argsToJson.dataType.toLowerCase();
|
||||||
|
if (type == 'text'||type == 'json') {
|
||||||
|
json.dataType = type;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
json.dataType = 'json';
|
||||||
|
}
|
||||||
|
json.method = 'post';
|
||||||
|
api.ajax(json,
|
||||||
|
function(ret,err){
|
||||||
|
if (ret) {
|
||||||
|
fnSuc && fnSuc(ret);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
u.get = function(/*url,fnSuc,dataType*/){
|
||||||
|
var argsToJson = parseArguments.apply(null, arguments);
|
||||||
|
var json = {};
|
||||||
|
var fnSuc = argsToJson.fnSuc;
|
||||||
|
argsToJson.url && (json.url = argsToJson.url);
|
||||||
|
//argsToJson.data && (json.data = argsToJson.data);
|
||||||
|
if(argsToJson.dataType){
|
||||||
|
var type = argsToJson.dataType.toLowerCase();
|
||||||
|
if (type == 'text'||type == 'json') {
|
||||||
|
json.dataType = type;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
json.dataType = 'text';
|
||||||
|
}
|
||||||
|
json.method = 'get';
|
||||||
|
api.ajax(json,
|
||||||
|
function(ret,err){
|
||||||
|
if (ret) {
|
||||||
|
fnSuc && fnSuc(ret);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
/*end*/
|
||||||
|
|
||||||
|
|
||||||
|
window.$api = u;
|
||||||
|
|
||||||
|
})(window);
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
此目录是资源包目录
|
Loading…
Reference in New Issue