描述: 配置

参数:

参数名 类型 描述 必选 版本
conf Object 配置

返回值: Object 当前配置

示例
 QApp.config({
   // 默认的首屏 View
   indexView: 'index',
   // 默认的动画
   defaultAnimate: 'moveEnter',
   // 是否自动初始化视图
   autoInit: true,
   // 是否开启 hash router
   hashRouter: true,
   hashSupport: {
       // 是否默认全部
       all: true,
       // 白名单
       exist: [],
       // 黑名单
       except: [],
       // 是否使用 path 变换(需要服务端支持)
       usePath: false
   },
   // 是否使用 json 形式参数
   jsonParam: false,
   screen: {
       // 是否支持屏幕旋转
       rotate: false,
       // 检测屏幕大小变换
       autoResize: true
   },
   gesture: {
       // 是否开启手势
       open: true,
       // 是否开启手势控制 (在 View 切换时,禁用手势)
       ctrl: true,
       // 长按是否触发 Tap 事件
       longTap: true,
       // 自动控制元素失去焦点
       autoBlur: true
   },
   // 日志等级
   logLevel: 1
 });

描述: 准备完毕回调

参数:

参数名 类型 描述 必选 版本
listener Function 回调函数
示例
QApp.ready(function() {
     todoSomething();
})

额外说明:

QApp.ready 不等同于 Dom Ready, 但依赖于 Dom Ready, 可以通过 QApp.addReadyDependencies 添加依赖

描述: 添加准备完毕依赖

参数:

参数名 类型 描述 必选 版本
defer Deferred 依赖对象

描述: QApp 版本

类型: {String}

参考值: "*Version*"

描述: 定义视图

缩略: QApp.defineView

参数:

参数名 类型 描述 必选 版本
name String 视图名
options Object 配置
示例
    QApp.defineView('view', {
       // 模板
       html: '',
       // 给视图根节点添加的样式
       classNames: ['class1', 'class2'],
       // 给视图根节点添加的属性
       attrs: {
           'data-some': 'qapp'
       },
       // 给视图根节点添加的样式
       styles: {
           'background-color': 'red'
       },
       // 给视图实例添加属性和方法
       init: {
           someValue: null,
           doSomething: function() {
           }
       },
       // 插件配置
       plugins: ['plugin1', {
           name: 'plugin2',
           options: {
           }
       }],
       // 视图生命周期事件绑定
       bindEvents: {
           'show': function() {
               // this 指向视图实例
           }
       },
       // 视图创建完成的回调
       ready: function() {
           // this 指向视图实例
       }
    });

描述: 取消定义视图

参数:

参数名 类型 描述 必选 版本
name String 视图名

描述: 获取视图定义的配置

参数:

参数名 类型 描述 必选 版本
name String 视图名

返回值: Object 配置

描述: 创建视图实例

参数:

参数名 类型 描述 必选 版本
options Object 视图配置

返回值: View 视图实例

描述: 显示视图

缩略: QApp.show

参数:

参数名 类型 描述 必选 版本
name String 视图名
options Object 配置
options.param Object 传入参数
options.ani String|Object 动画参数
callback Function 回调
示例
QApp.show('view', {
    param: {
        x: 1,
        y: 2
    },
    ani: 'actionSheet',
    onComplete: function(data) {
    }
});

额外说明:

show 主要用于视图内的组件类的内容展示,类似于PC端的弹层。 关于动画,请参看 QApp-plugin-basic

描述: 查看视图是否定义

缩略: QApp.existsView

参数:

参数名 类型 描述 必选 版本
name String 视图名

返回值: Boolean 是否存在

描述: 获取视图实例(异步)

缩略: QApp.getView

参数:

参数名 类型 描述 必选 版本
name String 视图名
callback Function 回调
示例
QApp.getView('someView', function(view) {
    // view
});

描述: 获取视图实例(同步)

缩略: QApp.getViewSync

参数:

参数名 类型 描述 必选 版本
name String 视图名

返回值: View 视图实例

描述: 容器

类型: {Element}

描述: 是否已经ready

类型: {Boolean}

描述: 是否显示

类型: {Boolean}

描述: 根节点

类型: {Element}

描述: 参数

类型: {Element}

描述: 插件映射

类型: {Object}

描述: 组件映射

类型: {Object}

描述: 扩展配置

类型: {Object}

描述: 渲染到容器中

参数:

参数名 类型 描述 必选 版本
container Element 渲染到的容器

返回值: View 视图实例

描述: 渲染HTML

参数:

参数名 类型 描述 必选 版本
html String html模板

返回值: Deferred 异步对象

描述: 显示

参数:

参数名 类型 描述 必选 版本
container Element 渲染到的节点
startCss Object 开始的样式
endCss Object 结束的样式
duration Number 持续时间,默认 200

返回值: View 当前视图实例

额外说明:

  • 动画插件会复写此方法。
  • QApp.openQApp.show 会自动调用此方法

描述: 隐藏

返回值: View 当前视图实例

额外说明:

  • 动画插件会复写此方法
  • QApp.openQApp.show 会复写此方法

描述: 关闭

返回值: View 当前视图实例

额外说明:

  • 动画插件会复写此方法
  • QApp.openQApp.show 会复写此方法

描述: Merge 参数

参数:

参数名 类型 描述 必选 版本
newParam Object 新参数

返回值: View 当前视图实例

描述: 绑定事件

参数:

参数名 类型 描述 必选 版本
name String 事件名
listener Function 监听的回调

返回值: View 当前视图实例

描述: 绑定事件(只监听一次)

参数:

参数名 类型 描述 必选 版本
name String 事件名
listener Function 监听的回调

返回值: View 当前视图实例

描述: 取消绑定事件

参数:

参数名 类型 描述 必选 版本
name String 事件名
listener Function 监听的回调

返回值: View 当前视图实例

额外说明:

listener 不给出,则取消绑定此次事件名所有绑定的回调 name 不给出,则取消所有绑定的事件

描述: 触发事件

参数:

参数名 类型 描述 必选 版本
name String 事件名
data Object 数据

返回值: View 当前视图实例

描述: 绑定事件

参数:

参数名 类型 描述 必选 版本
name String 事件名
listener Function 监听的回调

返回值: View 当前视图实例

描述: 扫描并渲染组件

参数:

参数名 类型 描述 必选 版本
container Element 节点

返回值:

描述: 显示组件

参数:

参数名 类型 描述 必选 版本
name String 组件名
el Element 节点
options Object 配置

返回值: Any 组件返回的对象

示例
var  widget = View.showWidget('searchlist', {
onComplete: function() {
      todoSomething();
}
});

额外说明:

所需参数和返回的对象由组件的适配器决定

描述: 销毁视图

返回值:

额外说明:

一般不需用户调用

描述: 将要开始显示

描述: 显示

额外说明:

业务逻辑推荐在这里开始执行,类似ajax的逻辑,会影响动画效率。 只有视图第一次显示时,才触发此事件。

描述: 将要开始隐藏

描述: 隐藏

描述: 接收到数据

参数:

参数名 类型 描述 必选 版本
view String 来源的视图名,例 view
name String 带索引的视图名, 例 view:1
data Object 携带的数据

数据形式:

数据键值 类型 描述 必存在 版本
view String 来源的视图名,例 view
name String 带索引的视图名, 例 view:1
data Object 携带的数据
示例
view.bind('receiveData', function(data) {
   execute(data); //TODO 处理data
});

额外说明:

使用 QApp.open 时,数据回溯,建议使用此事件接收。

描述: 被激活

额外说明:

视图每次展现都会触发此事件

描述: 被取消激活

描述: 销毁

额外说明:

一般用于销毁时,自动销毁用户创建的一些对象或者终止正在进行中的逻辑

描述: 打开视图

缩略: QApp.open

参数:

参数名 类型 描述 必选 版本
name String 视图名
options Object 配置
options.param Object 传入参数
options.ani String|Object 动画参数
callback Function 回调
示例
QApp.open('view', {
    param: {
        x: 1,
        y: 2
    },
    ani: 'moveEnter',
});

额外说明:

open 主要用于切换视图,类似于PC端的跳转,近似于App上的切换视图操作。

建议使用 View:receiveData 事件做监听。

关于动画,请参看 QApp-plugin-basic 由于需要和客户端相同,一般采用 moveEnter

描述: 回退

参数:

参数名 类型 描述 必选 版本
num Number 回退的级数,默认是 1
param Object 参数

描述: 回退到

参数:

参数名 类型 描述 必选 版本
name String 视图名
param Object 参数

返回值: Boolean 是否回退到

描述: 回退到首页

参数:

参数名 类型 描述 必选 版本
param Object 参数

描述: 跳转到(如果已存在,则回退到,否则新打开)

参数:

参数名 类型 描述 必选 版本
name String 视图名
options Object 打开视图需要的参数,同 open
param Object 参数

描述: 退出

描述: 刷新参数

参数:

参数名 类型 描述 必选 版本
param Object 新参数

描述: 添加open过滤器

参数:

参数名 类型 描述 必选 版本
filter Function 新参数

描述: 移除open过滤器

参数:

参数名 类型 描述 必选 版本
filter Function 新参数

描述: 添加back过滤器

参数:

参数名 类型 描述 必选 版本
filter Function 新参数

描述: 移除back过滤器

参数:

参数名 类型 描述 必选 版本
filter Function 新参数

描述: 获取当前视图名称

返回值: String

描述: 获取前一个视图名称

返回值: String

描述: Ready

参数:

参数名 类型 描述 必选 版本
callback Function 回调函数
示例
    QApp.util.ready(function(){});

描述: 节点构造

参数:

参数名 类型 描述 必选 版本
html String html片段

描述: 节点添加

参数:

参数名 类型 描述 必选 版本
node Element 目标节点
elements Element|Array 节点或节点数组
示例
 // 为 el 添加子节点
 var el = document.getElementById('demo'),
     nodes = [document.createTextNode("1"), document.createTextNode("2")];
 QApp.util.appendNodes(el, nodes);
 QApp.util.appendNodes(el, nodes);

描述: 节点插入

参数:

参数名 类型 描述 必选 版本
node Element 节点
element Element 新节点
where String 插入位置

返回值: Element

示例
 var node = document.getElementById('demo'),
     el = document.createElement('p');
 el.innerHTML = 'text';
 QApp.util.insertElement(node, el, 'beforebegin'); // 将node开始前插入el
 QApp.util.insertElement(node, el, 'afterbegin'); // 将node开始后插入el
 QApp.util.insertElement(node, el, 'beforeend'); // 将node结束前插入el
 QApp.util.insertElement(node, el, 'afterend'); // 将node结束后插入el
 QApp.util.insertElement(node, el); // 缺省默认为'beforeend'

描述: 删除节点

参数:

参数名 类型 描述 必选 版本
node Element 被删除的节点
示例
 var el = document.getElementById('demo');
 QApp.util.removeNode(el);

描述: 获取或设置节点属性值

参数:

参数名 类型 描述 必选 版本
node Element 目标节点
attrName {String|Object} 类型为String时,当两个参数时获取节点属性,当三个参数时修改节点属性;类型为Object时,按照健值对修改节点属性

返回值: String

示例
 var el = document.getElementById('demo'),
     attrKey = 'id', // 属性名
     attrVal1 = 'new-value', // 属性值
     attrVal2 = 'other-value',
     attr = { // 属性对象
        'id': 'new-value'
     };
 QApp.util.attr(el, attrKey, attrVal1); // 增加属性
 QApp.util.attr(el, attrKey, attrVal2); // 修改属性
 QApp.util.attr(el, attrKey, null);     // 删除属性
 QApp.util.attr(el, attr);              // 利用object方式修改属性

描述: 获取或设置节点样式

参数:

参数名 类型 描述 必选 版本
node Element 目标节点
property {String|Object} 类型为String时,当两个参数时获取节点样式,当三个参数时修改节点样式;类型为Object时,按照健值对修改样式
value String 设定的值

返回值: String

示例
 var el = document.getElementById('demo'),
     attr1 = 'background-color',
     value1 = 'red',
     attr2 = 'borderColor',
     value2 = 'blue',
     attr3 = 'translateY',
     value3 = '20px',
     obj = {
         "translateX": "20px",
         "scaleX": 2
     };
 QApp.util.css(el, attr1, value1); // 增加行内样式属性
 QApp.util.css(el, attr2, value2); // 增加行内样式属性
 QApp.util.css(el, attr2, value2); // 增加行内样式属性
 QApp.util.css(el, attr3, value3); // 增加行内样式属性
 QApp.util.css(el, obj); // 增加行内样式属性
 QApp.util.css(el, attr2, null); // 删除行内样式属性
 QApp.util.css(el, attr1, value2); // 更改行内样式属性
 QApp.util.css(el, attr1); // 查找行内样式属性

描述: 删除样式

参数:

参数名 类型 描述 必选 版本
node Element 节点
names String|Array 样式名称
示例
  var el = document.getElementById('demo');
  el.style.display = 'none';
  QApp.util.removeStyle(el, 'display');

描述: 事件修复

参数:

参数名 类型 描述 必选 版本
event Event 事件

返回值: Event

示例
 var el = document.getElementById('demo'),
     type = 'click',//事件类型
     useCapture = false;//是否冒泡
 QApp.util.addEvent(el, type, function(e){
    var event = QApp.util.fixEvent(e);//事件修复
 }, useCapture);

描述: 事件绑定

参数:

参数名 类型 描述 必选 版本
node Element 节点
type String 事件名
listener Function 事件处理函数
useCapture Any 事件处理阶段,默认是 false
示例
// 监听 el 的 click 事件
var el = document.getElementById('demo'),
   type = 'click', //事件类型
   fn = function(){}, //回调函数
   useCapture = false; //是否冒泡
QApp.util.addEvent(el, type, fn, useCapture);

描述: 解除绑定事件

参数:

参数名 类型 描述 必选 版本
node Element 目标节点
type String 事件名
listener Function 事件处理函数
示例
 var el = document.getElementById('demo'),
     type = 'click',
     fn = function(){},
     useCapture = false;
 QApp.util.addEvent(el, type, fn, useCapture);
 QApp.util.removeEvent(el, type, fn);

描述: 事件触发

参数:

参数名 类型 描述 必选 版本
node Element 目标节点
type String 事件名
args Any 附加参数

描述: 添加类名

参数:

参数名 类型 描述 必选 版本
node Element 节点
className String 类名
示例
//  为 el 新增一个 className 为 new-class
var el = document.getElementById('demo');
QApp.util.addClass(el, 'new-class');

描述: 移除元素指定类名

参数:

参数名 类型 描述 必选 版本
node Element 节点
className String 类名
示例
 var el = document.getElementById('demo');
 QApp.util.removeClass(el, 'color');

描述: 动态创建样式

参数:

参数名 类型 描述 必选 版本
cssText String 样式字符串

描述: 包含判定

参数:

参数名 类型 描述 必选 版本
a Element 节点
b Element 节点

返回值: Boolean

描述: 节点聚焦

参数:

参数名 类型 描述 必选 版本
element Element 节点

描述: 指定节点内的焦点元素失焦

参数:

参数名 类型 描述 必选 版本
container Element 容器节点

描述: 获取元素的尺寸

参数:

参数名 类型 描述 必选 版本
any Any 要获取尺寸的对象

描述: 获取位置

参数:

参数名 类型 描述 必选 版本
el Element 获取位置的节点

返回值: Object top 和 left 两个数值

描述: 获取节点自定义数据

参数:

参数名 类型 描述 必选 版本
node Element 目标节点

返回值: Object

描述: 动画

参数:

参数名 类型 描述 必选 版本
el Element 执行动画的元素
props Object 更改的属性
duration Number 持续时间
ease String 动画曲线
delay Number 延迟时间

返回值: Deferred

示例
// 修改 ele 的 transform 属性,实现动画(推荐)
var ele_transform = document.createElement("div");
QApp.util.animate(ele_transform, {transform: "translate(50%, 0)"}, 500);

// 修改 ele 的 left,实现动画
var ele_left = document.createElement("div");
QApp.util.animate(ele_left, {left: "50%", position: "absolute"}, 500);

描述: 类型判断

参数:

参数名 类型 描述 必选 版本
obj Any 要判断的对象
match String= 匹配的类型

返回值: String|Boolean

描述: 扩展

参数:

参数名 类型 描述 必选 版本
deep boolen true表示深拷贝,false表示浅拷贝,默认没有此参数
target Any 需要扩展的对象

返回值: Object

示例
var obj1, obj2, obj3, //定义变量
    deep; //定义一个布尔值
QApp.util.extend(true, {}, obj1, obj2, obj3); //深拷贝,obj1, obj2, obj3的属性重新生成后放到{}上

var obj1, obj2, obj3,//定义变量
    deep;//定义一个布尔值
QApp.util.extend(obj1, obj2, obj3); //浅拷贝,obj2,obj3的属性被复制到obj1上

描述: 遍历对象

参数:

参数名 类型 描述 必选 版本
obj Object 遍历的对象
fn Function 回调
示例
var people = {name: 'xiaoming'};
function fn(key, item){};
QApp.util.each(obj, fn); //遍历对象,执行函数fn

描述: 数组化

参数:

参数名 类型 描述 必选 版本
iteration Any 需要转换的变量

返回值: Array|Boolean false

示例
    //定义一个类数组对象
    var likeArray = {
        0: param1,
        1: param2,
        2: param3,
        length: 3
    };

    QApp.util.makeArray(likeArray); //返回一个数组,值为(length-1)下标逆序下标数组

描述: 延时封装

参数:

参数名 类型 描述 必选 版本
func Function 方法
delay Number 延时时间,默认值为0

返回值: Number

示例
 var time = 1000;
 function fn(){}
 QApp.util.delay(fn, time); // 延迟1s执行函数

描述: 数组映射对象

参数:

参数名 类型 描述 必选 版本
arrVal Array 数组数
arrKey Array key数组

返回值: Object

示例
    //对象属性值数组
    var arrValues = [val1, val2, val3];
    //对象属性名数组
    var arrKeys = [key1, key2, key3];

    QApp.util.associate(arrValues, arrKeys); // {key1: val1, key2: val2, key3: val3}

描述: 对象映射数组

参数:

参数名 类型 描述 必选 版本
obj Object 对象数据
arrKey Array key数组

返回值: Array

示例
 var obj = {
     key1: value1,
     key2: value2,
     key3: value3
 };
 //想要输出对象值的属性数组
 var arrKeys = [key1, key3];

 QApp.util.mapping(obj, arrKeys);//返回[value1, value3]

描述: 获取唯一id

返回值: Number

示例
var variable = QApp.util.getUniqueID; //获取到唯一id

描述: 获取自增 z-index

返回值: Number z-index

示例
    QApp.util.getZIndex();//获取自增z-index,最小值是1001

描述: 驼峰化

参数:

参数名 类型 描述 必选 版本
str String 需要转化的字符串

返回值: String

示例
var str = "div-element"; // 定义一个通过 "-" 或 "/" 分割的变量
QApp.util.camelCase(str);   // 返回divElement

描述: 连接化

参数:

参数名 类型 描述 必选 版本
str String 需要转化的字符串

返回值: String

示例
   // 声明一个值为驼峰形式的字符串
   var str = "divElement";
   QApp.util.dasherize(str);  // 返回以 "-" 连接的字符串,div-element

描述: 清空对象

参数:

参数名 类型 描述 必选 版本
obj Object 要清空的对象
示例
    //定义一个对象
    var programmer = {
        name: "missy",
        age: 22
    };
    QApp.util.empty(programmer);//无返回值,对象属性值将被清空。programmer {name:null, age:null}

描述: 对象判空

参数:

参数名 类型 描述 必选 版本
obj Object 要判空的对象

返回值: Boolean

描述: json数据转换成查询字符串

参数:

参数名 类型 描述 必选 版本
json JSON 数据
isEncode Any 是否被编码

返回值: String

描述: 查询字符串转换成json数据

参数:

参数名 类型 描述 必选 版本
data String 数据
isDecode Any 是否被编码

返回值: Object

描述: 异步串行

参数:

参数名 类型 描述 必选 版本
list Array Deferred 列表
keys Array 结果映射
dynamic Boolean 是否支持动态添加

返回值: Deferred

描述: 异步并行

参数:

参数名 类型 描述 必选 版本
list Array Deferred 列表
keys Array 结果映射

返回值: Deferred

描述: 将函数应用于view

参数:

参数名 类型 描述 必选 版本
callback Function 方法
view Object 视图
args Any 参数

返回值: Any

描述: 获取回调函数

参数:

参数名 类型 描述 必选 版本
args Any 回调函数

返回值: Function

描述: 环境嗅探

类型: {Object}

参考值: {os: 'ios', ios: true, android: false, iphone: true, ipad: false, ipod: false, imobile: true, osVersion: '8.1.2', osVersionN: 8, pixelRatio: 2, retina: true, pc: false}

描述: 增加插件

缩略: QApp.addPlugin

参数:

参数名 类型 描述 必选 版本
name String|Array 插件名
options Object 默认配置
adapter Function 适配器
示例
QApp.addPlugin('some', someOpt, function(view, opt) {
  view.someAttr = someValue;
  return SomeObject;
});

额外说明:

plugin 可以通过监听生命周期事件来进行相关行为,也可以复写或增加视图的方法。

描述: 检测插件是否存在

参数:

参数名 类型 描述 必选 版本
name String 插件名

返回值: Boolean 是否存在

描述: 获取插件当前配置

参数:

参数名 类型 描述 必选 版本
name String 插件名

返回值: Object 当前配置

描述: 设置插件当前配置

参数:

参数名 类型 描述 必选 版本
name String 插件名
options Object 配置

额外说明:

extend 的方式

描述: 获取全局插件列表

缩略: QApp.configPlugin

返回值: Array 全局插件列表

描述: 设置全局插件

缩略: QApp.setGlobalPlugins

参数:

参数名 类型 描述 必选 版本
gPlugins String|Array 插件或列表

额外说明:

内部逻辑是 concat 操作

描述: 添加组件

缩略: QApp.addWidget

参数:

参数名 类型 描述 必选 版本
name String 组件名
adapter Function 适配器
isEvent Boolean|String 是否由事件触发
示例
QApp.addWidget('some', function(element, opt, view) {
  todoSomething();
})

额外说明:

isEventtrue 或者是 事件名 (tap) 时为触发式组件,反之为渲染式组件

描述: 检查组件是否存在

参数:

参数名 类型 描述 必选 版本
name String 组件名

返回值: Boolean 是否存在

描述: 获取组件当前配置

参数:

参数名 类型 描述 必选 版本
name String 组件名

返回值: Object 当前组件配置

描述: 显示组件

缩略: QApp.showWidget

参数:

参数名 类型 描述 必选 版本
name String 组件名
el Element 节点
options Object 配置
view View 关联的视图

返回值: Any 组件返回的对象

示例
var  widget = QApp.showWidget('searchlist', {
onComplete: function() {
      todoSomething();
}
});

额外说明:

所需参数和返回的对象由组件的适配器决定