导航

概述

KK JS-SDK是基于移动KK平台的Web应用开发工具包。

Web应用开发人员使用KK JS-SDK,可以调用拍照、拨号、定位等的移动设备能力,可以访问移动KK自身通讯录,可以对文件进行查看、删除、压缩/解压、加密/解密等操作。

此外,KK JS-SDK还能部分兼容基于微信平台开发的Web应用。

整体说明

关于文档

此文档有下面几条约定:

1.函数原型中,被方括号包裹的参数为可选参数

如: kk.app.callApp(cmd, [args], [done], [fail]) 这里的args、done、fail都是可选参数

2.参数说明中,optional代表可选参数,接在后面括号里的值为默认值

如: object,optionl({}) 这里默认参数为一个空对象

3.除kk.config外,参数(callbacks)和返回值(return)都为一个对象,callbacks 和 return 的描述为返回对象各属性的含义

如: var userInfo = kk.app.getUserInfo() 这里的userInfo为一个对象

4.utils中的Any表示参数的类型可以是javascript支持的任意数据类型

5.文档中所有涉及分辨率、尺寸或者宽高的单位都是像素(px)

kk.app.getDeviceInfo 获取到的分辨率,kk.media.getPicture 中设置图片的宽高等

文件路径

API中文件路径有以下几种写法:

协议 路径位置
app 应用包自身。如 app://doc/myfile.doc 表示应用包 中的 doc 文件夹中的 myfile.doc 文件
public KK客户端公共存储区。如 public://temp/ 表示公共存储区 temp 文件夹
sdcard Android指向sd卡,iOS则指向KK客户端的 document 文件夹。如 stcard://message.wav 在Android机器上表示sd卡根目录下的 message.wav 文件,在iOS上表示KK客户端 document 目录下的 message.wav 文件

调用说明

所有API通过kk对象来调用 (若有命名冲突,使用kk.noConflict来解决命名冲突)。

异步调用的API都有可以传入成功回调和失败回调两个参数,其中,成功回调可能会接收一个对象作为参数(返回值/callbacks),失败回调通常接收两个参数fail(code,msg),code为错误代码,msg为错误说明。

失败回调:

错误代码 错误信息

使用步骤

步骤1. 获取JS-SDK文件,点次获取JS-SDK文件

步骤2. 引入JS-SDK文件,通过 <script> 标签或者使用 AMD/CMD 标准模块加载方法加载。

@section('加载JS-SDK文件')
//步骤1:加载JS-SDK文件
<!--Script标签加载:-->
<script src='kk-1.0.0.js'></script>

//CMD加载:
seajs.config({
  base: "../sea-modules/",
  alias: {
    'kk': 'app/kk-1.0.0.js'
  }
});

//AMD加载:
requirejs(['jquery', 'app/kk-1.0.0'],function($,kk){
    //监听ready事件,即可在回调中使用kk的API,详见步骤3
});
@endsection

步骤3. 配置JS-SDK(可选)

@section('配置JS-SDK')
//步骤2:配置JS-SDK(可选)
//配置应用,输出能力调用的详细日志
kk.config('detailLog', true);
@endsection

步骤3. 监听ready事件,回调后即可使用kk的API

@section('监听ready事件,回调后即可使用kk的API')
//步骤3:监听ready事件,回调后即可使用kk的API
//应用运行入口:
kk.ready(function(){
    //调用kk的API
});
@endsection

核心入口模块 kk

kk入口模块,整个库的核心入口模块,定义的库的命名空间kk(以及别名 Easymi,为兼容旧有项目),并暴露给全局使用。

提供了 kk.ready,kk.noConflict 两个核心方法。

Ready

示例代码:

@section('监听ready事件示例代码')
//监听ready事件
kk.ready(function( args ){
    var type = args.startType;
    if(type === 1){//用户请求使用应用
        //相应操作
    }else if(type === 2){//被推送消息拉起
        //相应操作
    }else if(type === 3){//被其他应用拉起
        //相应操作
    }
});
@endsection

将函数添加到 native 初始化后的回调函数队列,可以多次调用。

若调用 ready 时,native 已完成初始化,则立即执行传入的函数。

kk.ready(fn)

params:

名称 描述
fn function 回调函数,接收一个对象作为参数,参数详见callbacks

callbacks:

名称 描述
netState number 网络状态 0:离线,1:在线
startType number 应用的启动类型。1:用户请求使用应用,2:被推送消息拉起,3:被其他应用拉起
callArgs object 调用参数,startType等于2时,为推送消息的数据,等于3时,为调用参数

命名冲突 noConflict

示例代码:

@section('解决命名冲突示例代码')
// 假如 kk 加载之前已经存在一个 kk 变量
var kk = {
    name:'kk'
};

// 更改kk的命名,将 kk 命名交还给原来的 kk
var newkk = kk.noConflict();
newkk.ready( function(){
    //使用newkk来调用kk的API
});

console.log( kk.name );  //=> 'kk'
@endsection

解决命名冲突,将全局命名空间下的 kk 改回 KK-SDK 执行之前的值 kk.noConflict()

kk运行环境判断 isKK

示例代码:

@section('判断运行环境是否为KK')
if( kk.isKK() ) {
    alert('Welcome kk user!');
}
@endsection

判断当前代码是否在kk移动客户端中之行,若为kk移动客户端,则返回 true。通过检测浏览器的userAgent 中是否有 kk5 来判断。 kk.isKK()

应用配置模块 Config

设置和获取应用配置 config

示例代码:

@section('设置和获取应用配置:不传参数')
// 1.不传参数:返回包含所有配置的对象
var appConfig = kk.config();
console.log(JSON.stringify( appConfig ) );
//=>'{"debug": true, "detailLog": false}'
@endsection
@section('设置和获取应用配置:传入一个配置键名字符串')
// 2.传入一个配置键名字符串:返回键名对应的值
var appConfig = kk.config( 'detailLog' );
console.log( appConfig );
//=>false
@endsection
@section('设置和获取应用配置:传入两个参数(key,value)')
// 3.传入两个参数(key,value):返回设置的值
var appConfig = kk.config( 'detailLog', true );
console.log(appConfig);
//=>true
@endsection
@section('设置和获取应用配置:传入一个对象')
// 4.传入一个对象:返回包含所有配置的对象
var appConfig = kk.config({
    debug: false,
    detailLog: false
});
console.log( JSON.stringify( appConfig ) );
//=>'{"debug": false, "detailLog": false}'
@endsection

支持的配置项

名称 描述
debug boolean(true) 是否打印日志,日志会输出到日志文件中
detailLog boolean(false) 是否在日志中打印出成功回调接收的所有参数, 只有 debug 为true是,detailLog 的设置才有效

日志文件在手机上的位置

KK管理台->应用管理->移动端应用上添加手机移动web应用之后,会得到一个应用ID,在手机上日志文件的名称即以该ID命名。

在管理台查找应用ID

Android和iOS的日志在手机上路径是不一样的。

Android日志文件位置

[Andorid内部存储空间]/Andorid/data/com.landray.kkplus/files/log/applog/ 目录下以 应用ID命名(无文件后缀)的文件,该文件为纯文本文件,可用任何能打开纯文本文件的软件查看

iOS日志文件位置

查看iOS的日志必须借助iTunes。在电脑上安装iTunes后,使用数据线连接iOS设备,在iTunes中点击已连接的iOS设备,管理其中的应用,在 文件共享 下找到 KK 5.0 并选中它,在右侧 KK 5.0的文稿列表中即可找到 以应用ID命名(文件后缀为 .log)的文件,该文件为纯文本文件,将其拖拽至电脑上,即可使用文本编辑器查看。

查看iOS日志

此方法有有4种调用形式:

1.不传参数

返回包含所有配置的对象 config()

return:

名称 描述
debug boolean 是否打印日志,默认true
detailLog boolean 是否在日志中打印出成功回调接收的所有参数,默认false

2.传入一个配置键名字符串

返回配置项 key 对应的value值 config(key)

return:

名称 描述
value string 键名对应的值

3.传入两个参数(key,value)

将配置项 key 的值设置为value,并返回value config(key, value)

return:

名称 描述
value string 设置的值

4.传入一个对象

如果options中的属性名在配置项中存在,则修改 options 中的值,完成后返回全部配置项 config( options )

options:

名称 描述
debug boolean,optional(true) 是否打印日志
detailLog boolean,optional(false) 是否在日志中打印出成功回调接收的所有参数

return:

返回值结构与config()一样

应用模块 App

app模块,提供了控制app的基础能力,如应用退出、拉起引用、监听应用事件、应用徽章控制等等

退出应用 exit

示例代码:

@section('退出应用示例代码')
//退出应用
kk.app.exit();
@endsection

退出Web应用 kk.app.exit()

拉起Web应用 callApp

示例代码:

@section('拉起Web应用示例代码')
// 在App1中
// 拉起Web应用
kk.app.callApp( 'testApp2_entry1', {
  p1: 'p1',
  p2: 'p2',
  p3: 'p3'
}, function(){
  // 拉起其他应用后,本应用退出。
  kk.app.exit();
}, function( code, msg ){
  console.log('kk.app.callApp 错误代码:' + code + ' , 错误信息:' + msg );
});
@endsection

调用客户端内置的其他Web应用 kk.app.callApp(cmd, [args], [done], [fail])

params:

名称 描述
cmd string 应用命令字符串
args object, optional({}) 调用的参数
done function, optional 成功回调
fail function, optional 失败回调

fail:

错误代码 错误信息

拉起原生应用 callNativeApp

示例代码:

@section('拉起原生发短信应用:Android示例')
// 拉起原生发短信应用:Android示例
kk.app.callNativeApp({
  __action:"android.intent.action.SENDTO",
  __category:"android.intent.category.DEFAULT",
  __url:"smsto:13823794432",
  sms_body:"短信内容"
}, function(){
  console.log('拉起原生应用成功');
}, function(code, msg){
  console.log('callNativeApp 错误代码:' + code + ' ,错误信息:' + msg );
});
@endsection
@section('拉起原生发短信应用:iOS示例')
// 拉起微信扫描二维码: iOS示例
kk.app.callNativeApp({
  __url: 'weixin://dl/scan'//Native应用注册处理的url
}, function(){
  console.log('拉起原生应用成功');
}, function(code ,msg){
  console.log('callNativeApp 错误代码:' + code + ' ,错误信息:' + msg );
})
@endsection

启动第三方native应用 kk.app.callNativeApp(options, [done], [fail])

params:

名称 描述
options object 调用应用的参数,iOS和Android的参数不一致,详见options
done function, optional 成功回调
fail function, optional 失败回调

options(iOS)

名称 描述
__url string Native应用注册处理的url

options(Android)

名称 描述
__url string Intent Data url
__type string Intent MimeType
__action string Intent Action
__category string Intent category,暂不支持多个
__package string Intent package
__class string Intent class
__otherParam string 作为extra放到启动Intent中
key为extra的name,value为char(3)+char(type)+extra_value
下面有type取值说明

type对应value的类型:

描述
1 value可以直接为extra_value
2 value为整型
3 value为浮点型
4 value为字符串数组,数组元素用char(4)分隔
5 value为整型数组,数组元素用char(4)分隔
6 value为浮点型数组,数组元素用char(4)分隔
7
8 value为HTML内容,需要执行HTML.parse操作
9 value为url

fail:

错误代码 错误信息
9 没有对应的Native应用

监听应用事务 on

示例代码:

@section('监听应用事务')
//监听应用事务
kk.app.on('resume', function( args ){
  if( args.netState == 0 ){//离线
    console.log('未连接网络,请检查网络');
  }else{//在线
    console.log('连接网络,可以执行请求');
  }
});
@endsection
@section('监听网络变化')
//监听应用事务
kk.app.on('netStateChange', function( res ){
  if( res.netState == 1 ){
    console.log('网络重新连接上');
    //更改网络标志为在线
  }else{
    console.log('网络断开' );
    //更改网络标志为离线
  }
});
@endsection

添加应用事件监听 kk.app.on(eventName, eventCB)

params:

名称 描述
eventName string 事件名称,详见 eventName
eventCB function 事件回调,eventCB(args),args为一个对象,不同的事件返回的args不同,详见各事件的callbacks

eventName:

事件名称 描述
pause 当应用被切换到后台运行时(可能是打开了其他应用或者按Home返回桌面),关闭时也会触发此事件
resume 当应用被切换到前台运行时执行,回调接收参数
exit 应用退出时,没有回调参数
pushMessage 推送消息到达时,回调接收参数
netStateChange 客户端容器的网络状态变动时,回调接收参数
backKeyPressed 后退键事件(Android Only),没有回调参数
phoneStateChange 电话状态改变事件(Android Only),回调接收参数

resume`s callbacks:

名称 描述
netState number 网络状态,0:离线,1:在线
startType number 触发类型,1:用户请求使用应用,2:被推送消息拉起,3:被其它应用调用拉起
callArgs object 调于用参数,startType等2时,为推送消息的数据,等于3时,为调用参数

netStateChange`s callbacks:

名称 描述
netState number 网络状态,0:离线,1:在线

phoneStateChange(Android Only)`s callbacks:

名称 描述
phoneState number 电话状态,1:RING(响铃),2:OFFHOOK(摘机),3:IDLE(空闲)
param number phoneState=1时,表示来电号码,其他无意义

fail:

错误代码 错误信息

设置徽章 setBadge

示例代码:

@section('设置徽章示例代码')
//设置徽章为"3"
kk.app.setBadge( {num: 3} );
@endsection

设置应用徽章,在应用的入口图标的右上角显示一个数字。 kk.app.setBadge(options)

params:

名称 描述
option object 包含徽章值的对象,详见options

options:

名称 描述
num number 要设置的徽章值,设置为0表示去除徽章

获取徽章 getBadge

示例代码:

@section('获取徽章示例代码')
//获取应用徽章
kk.app.getBadge( function( res ){
  console.log( 'getBadge value: ' + res.num );
} );
@endsection

获取应用徽章 kk.app.getBadge(done)

params:

名称 描述
done function 成功回调,接收键名为num的对象作为参数,详见callbacks

callbacks:

名称 描述
num number 应用徽章的值

获取网络状态 getNetState

示例代码:

@section('获取网络状态示例代码')
//获取网络状态 
var state = kk.app.getNetState();
if(state.netState == 1){
  console.log('网络在线');
}else{
  console.log('网络离线');
}
@endsection

获取网络状态 kk.app.getNetState()

return:

名称 描述
netState number 网络状态值,1:在线,0:离线

获取设备信息 getDeviceInfo

示例代码:

@section('获取设备信息示例代码')
//获取设备信息
var deviceInfo = kk.app.getDeviceInfo();

console.log('设备操作系统: ' + deviceInfo.os);
console.log('设备类型: ' + deviceInfo.type);
console.log('分辨率:' + deviceInfo.pixel);
console.log('分辨率中大的一边:' + deviceInfo.largerPixel);
console.log('分辨率中小的一边:' + deviceInfo.smallerPixel);
@endsection

获取设备信息,如操作系统、设备类型、分辨率等。 kk.app.getDeviceInfo()

return:

名称 描述
os string 操作系统,iOS/Android/windows(模拟器)
type string 类型,phone/pad
pixel string 分辨率,形如:1024x767(值较大的在前)
largerPixel number pixel属性中较大的一边
smallerPixel number pixel属性中的较小的一边

获取用户信息 getUserInfo

示例代码:

@section('获取用户信息示例代码')
//获取用户信息 
var userInfo = kk.app.getUserInfo();

console.log('用户id: ' + userInfo.userID);
console.log('用户登录名: ' + userInfo.loginName);
console.log('用户显示名称: ' + userInfo.userName);
@endsection

获取用户信息,即登陆客户端的用户的账号信息 kk.app.getUserInfo()

return:

名称 描述
userID string 用户id
loginName string 用户登录名
userName string 用户显示名称

设置cookie setCookie

示例代码:

@section('设置cookie示例代码')
//设置cookie
kk.app.setCookie({
  url: "http://192.168.1.187:7080/",
  cookie: "JSESSIONID=DD24DC2A1174E096DD9FD912C98D775A; Path=/; HttpOnly"
},function(){
  console.log('setCookie 成功');
});
@endsection

给某个网址设置cookie,一般用于离线页面跳转至在线页面时设置用户身份验证信息 kk.app.setCookie(options, [done], [fail])

params:

名称 描述
options object 包含url和cookie属性的对象,详见options
done function,optional 成功回调,没有回调参数
fail function,optional 失败回调

options:

名称 描述
url string cookie生效的域
cookie string cookie字符串

fail:

错误代码 错误信息
999 cookie生效的域为空

获取cookie getCookie

示例代码:

@section('获取cookie示例代码')
//获取cookie
kk.app.getCookie({
  url: "http://192.168.1.187:7080/"
},function( res ){
  console.log('getCookie coolieStr: ' + res.cookie );
});
@endsection

获取某个网址中的cookie kk.app.getCookie(options, done, [fail])

params:

名称 描述
options object 包含url属性的对象,详见options
done function 成功回调,接收有cookie字符串属性的对象作为参数,详见callbacks
fail function,optional 失败回调

options:

名称 描述
url string 要获取cookie的url

callbacks:

名称 描述
cookie string 获取到的cookie字符串

fail:

错误代码 错误信息
999 参数url为空

截屏 captureScreen

示例代码:

@section('截屏:以文件形式输出')
//截屏:以文件形式输出
kk.app.captureScreen({
  encodingType: 'jpeg',
  quality: 80,
  destinationType: 'file',
  savePath: 'sdcard://capturescreen/' + new Date().getTime() + '.jpeg'
}, function( res ){
  //res.imageFileOSPath,可以作为<img>标签的src使用
  //res.imageURI,可以作为kk.media.save2album()的filepath,将相片保存到相册
  console.log('图片的保存路径:' + res.imageURI + ';图片的操作系统路径:' + res.imageFileOSPath);
});
@endsection
@section('截屏:以base64编码形式输出')
//截屏:以base64编码形式输出
kk.app.captureScreen({
  encodingType: 'jpeg',
  quality: 80,
  destinationType: 'data',
  savePath: 'sdcard://capturescreen/' + new Date().getTime() + '.jpeg'
}, function( res ){
  console.log('图片的base编码:' + res.imageData);
  //res.imageData 可以作为<img>标签的src使用
});
@endsection

应用截屏 kk.app.captureScreen([options,] done, [fail])

params:

名称 描述
options string,optional 配置参数,不传则全部使用默认参数,详见options
done function 成功回调,返回一个对象作为参数,详见callbacks
fail function,optional 失败回调

options:

名称 描述
targetWidth number,optional(100) 输出图片宽
targetHeight number,optional(100) 输出图片高,需和targetHeight配合使用
encodingType string,optional(‘png’) 输出格式,可选值:jpeg/png
quality number,optional(50) 输出图片质量,范围:0-100
destinationType string,optional('data’) 输出形式,可选值:file/data
savePath number,optional 保存路径,destinationType=file时有效,不指定时,以随机文件名保存到'sdcard://easymi/'文件夹

callbacks:

名称 描述
imageURI string 截屏后的文件保存路径(当destinationType为file时返回)
imageFileOSPath string 截屏后的文件的操作系统路径(当destinationType为file时返回)
imageData string 图片的base64编码(当destinationType为data时返回),可用作<img>标签的src属性

fail:

错误代码 错误信息
-2 参数错误

显示标题栏 showTitleBar

示例代码:

@section('显示标题栏示例代码')
//显示标题栏
kk.app.showTitleBar();
@endsection

显示应用容器(webview)的标题栏/导航栏 kk.app.showTitleBar()

隐藏标题栏 hideTitleBar

示例代码:

@section('隐藏标题栏示例代码')
//隐藏标题栏 
kk.app.hideTitleBar();
@endsection

隐藏应用容器(webview)的标题栏/导航栏 kk.app.hideTitleBar()

设置标题栏标题 setTitle

示例代码:

@section('修改标题栏标题示例代码')
// 修改标题栏标题
kk.app.setTitle('个人信息');
@endsection

设置应用容器(webview)的标题栏/导航栏的标题 kk.app.setTitle(title)

params:

名称 描述
title string 标题文字

原生通讯录模块 Contact

设备通讯录模块 提供了操作客户端设别系统自带通讯录的能力

ContactInfo 联系人信息结构

名称 描述
id string 一个全局的唯一标识,可通过 find 方法获取到
name string 名字
namePY string 名字拼音/音标
cname string 姓氏
cnamePY string 姓氏拼音
company string 公司
phones string 联系人的电话号码列表,多个值之间用逗号分隔,其中每个位置的含义见下表
emails string 联系人的邮件地址列表,多个值之间用逗号分隔,其中每个位置的含义见下表
addresses string 联系人的地址列表,多个值之间用逗号分隔,其中每个位置的含义见下表
firstLetter string 名字的首字母
prefix string 前缀
middleName string 中间名
suffix string 后缀
nickname string 昵称
jobTitle string 职务
department string 部门
birthday string 生日
notes string 备注

phones多个值时,每个位置的含义

位置 描述
0 移动电话
1 住宅电话
2 工作电话
3 主要电话
4 住宅传真
5 工作传真
6 传呼
7 其他电话

email多个值时,每个位置的含义

位置 描述
0 电子邮件
1 工作邮件
2 个人邮件
3 主要邮件
4及以后 其他邮件

address多个值时,每个位置的含义

位置 描述
0 主要地址
1及以后 其他地址

添加联系人 add

示例代码:

@section('添加联系人示例代码')
//增加联系人
kk.contact.add({
  'name':'Joyce',
  'phones':'13499997777'
}, function(){
  console.log('新增成功');
}, function(){
  console.log('新增失败');
});
@endsection

添加联系人 kk.contact.add(contactInfo, [done], [fail])

params:

名称 描述
contactInfo object 联系人信息,无需指定id信息,详见上面 ContactInfo
done function, optional 成功回调,没有回调参数
fail function, optional 失败回调

fail:

错误代码 错误信息
9 操作失败

删除联系人 remove

示例代码:

@section('删除联系人示例代码')
//移除联系人
kk.contact.find({
  'name':'Joyce.He',
  'phones':'13499997777',
}, function( res ){
  kk.contact.remove( res[0].id, function(){
    console.log('删除成功');
  }, function(){
    console.log('删除失败');
  });
}, function(){
  console.log( '需要删除的联系人不存在' );
});
@endsection

删除联系人 kk.contact.remove(contactId, [done], [fail])

params:

名称 描述
contactId string 联系人Id
done function, optional 成功回调,没有回调参数
fail function, optional 失败回调

fail:

错误代码 错误信息
9 操作失败

修改联系人信息 update

示例代码:

@section('修改联系人信息示例代码')
//修改联系人信息
kk.contact.find({
  'name':'Joyce.He',
  'phones':'13499997777',
}, function( res ){
  kk.contact.update({
      id: res[0].id,     // 必填
      name: 'Joyce.He',
      number: '13499998888'
  }, function(){
    console.log('修改成功');
  }, function(){
    console.log('修改失败');
  });
}, function(){
  console.log( '需要删除的联系人不存在' );
});
@endsection

修改联系人信息 kk.contact.update(contactInfo, [done], [fail])

params:

名称 描述
contactInfo object 联系人信息,参考add中contactInfo,id必填
done function, optional 成功回调,没有回调参数
fail function, optional 失败回调

fail:

错误代码 错误信息
9 操作失败(id不存在)
999 id为空

查找联系人 find

示例代码:

@section('查找联系人示例代码')
//查找联系人
kk.contact.find({
    name: 'Joyce.He',
    number: '13499997777'
}, function( res ){
    // 如果通讯录有重复的记录,则会返回多条
    for( var i=0; i<res.length; i++ ){
      console.log('联系人姓名:' + res[i].name + ',联系人电话:' + res[i].phone);
    }
}, function(code, msg){
  console.log('查找失败,code:' + code + ',msg:' + msg);
});
@endsection

查找联系人 kk.contact.find(options, done, [fail])

params:

名称 描述
options object 查找条件,详见options
done function 成功回调,接收数组为参数,数组元素为联系人信息对象,参考add中contactInfo
fail function, optional 失败回调

options:

名称 描述
name string,optional 联系人姓名
phone string,optional 联系人手机号码

选择联系人 choose

示例代码:

@section('选择联系人示例代码')
//查找联系人
kk.contact.choose({
    mode: 2
}, function( contacts ){
    // 如果通讯录有重复的记录,则会返回多条
    for( var i=0; i<res.length; i++ ){
      console.log('联系人姓名:' + res[i].name + ',联系人电话:' + res[i].mobile);
    }
}, function(code, msg){
  console.log('查找失败,code:' + code + ',msg:' + msg);
});
@endsection

选择联系人 kk.contact.choose([options], done, [fail])

params:

名称 描述
options object 选择的条件,详见options
done function 成功回调,接收数组为参数,数组元素为精简的联系人信息对象,详见contact
fail function, optional 失败回调,

options:

名称 描述
mode number,optional(1) 1选择人;2选择电话号码;3选择邮件地址。如果不指定则认为是1

contact:

名称 描述
id string 一个全局的唯一标识
name string 名字
mobile string/array 电话号码,mode为2,是字符串,其它情况下是数组,即多个电话号码
email string/array 邮件地址,mode为3,是字符串,其它情况下是数组,即多个邮件地址

fail:

错误代码 错误信息
-1 用户取消了选择
-3 kk无通讯录权限
-6 参数错误

企业通讯录模块 Econtact

门户通讯录模块 提供了访问门户(客户端)自身通讯录的能力

contactInfo:

名称 描述
userID string 员工ID
loginName string 联系人登录名称
name string 联系人姓名
depart string 联系人直属部门名称
mobile string 手机号码
email string 邮箱地址
deptPath array 员工所在所有部门名称,由顶层部门到底层部门依次排列

选择联系人 choose

示例代码:

@section('选择企业通讯录人员示例代码')
kk.econtact.choose({
  'initList': ['loginName1','loginName2'],
  'isSticky': false
}, function( selects ){
  // selects是一个对象数组,这里获取第一个用户信息
  console.log('第一个联系人登录名称:' + selects[0].loginName);
  console.log('第一个联系人姓名:' + selects[0].userName);
  console.log('第一个联系人直属部门名称:' + selects[0].depart);
  // selects[0].deptPath 返回字符串数组
  console.log('第一个联系人所有部门名称' + selects[0].deptPath);
  console.log('第一个联系人所有部门的顶层部门名称' + selects[0].deptPath[0]);
}, function( code, msg){
  console.log('选择联系人失败回调 code: ' + code +' ,msg: ' + msg );
});
@endsection

联系人选择API kk.econtact.choose([options], done, [fail])

params:

名称 描述
options object, optional 配置项,详见下面 options
done function 成功回调,返回包含被选择的联系人信息对象的数组,联系人信息结构请见 顶部 contactInfo 描述
fail function, optional 失败回调,可选

options:

名称 描述
initList array,optional([]) 初始选中的联系人ID集合,为数组,可选
isSticky boolean,optional( false ) 被选中的联系人是否被取消选中(可否编辑),true为不可取消,false为可以被编辑,可选
stickyList array, optional([]) 初始化联系人中不可被移除的联系人ID,isSticky 为true时该参数无效
maxCount number, optional(0) 最多可选择的人数(包含initList里面的人),0 表示不限制人数
isSelfSticky boolean, optional(false) 是否默认带上自己并且不可移除

fail:

错误代码 错误信息
-1 用户取消选择

根据人员ID查询人员信息 getUserInfoById

示例代码:

@section('根据人员ID查询人员信息示例代码')
kk.econtact.getUserInfoById([190293, 190932], function( selects ){
  // selects是一个对象数组,这里获取第一个用户信息
  console.log('第一个联系人登录名称:' + selects[0].loginName);
  console.log('第一个联系人姓名:' + selects[0].userName);
  console.log('第一个联系人直属部门名称:' + selects[0].depart);
  // selects[0].deptPath 返回字符串数组
  console.log('第一个联系人所有部门名称' + selects[0].deptPath);
  console.log('第一个联系人所有部门的顶层部门名称' + selects[0].deptPath[0]);
}, function( code, msg){
  console.log('查询联系人信息失败 code: ' + code +' ,msg: ' + msg );
});
@endsection

联系人选择API kk.econtact.getUserInfoById(IDs, done, [fail])

params:

名称 描述
IDs string/array 所查询人员在企业通讯录中的ID,可以是单个人的ID,也可以是多个ID组成的数组
done function 成功回调,返回包含被选择的联系人信息对象的数组,联系人信息结构请见 顶部 contactInfo 描述。如果所查人员不存在,则返回结果中无其对应信息
fail function, optional 失败回调,可选

fail:

错误代码 错误信息
-9 参数错误

电话短信模块 Phone

电话短信模块,提供了拨打电话、发送短信能力

电话 call

示例代码

@section('拨打电话:无需确认')
//直接拨出号码,无需确认
kk.phone.call('10086', false);
@endsection
@section('拨打电话:需确认')
//在用户确认后拨出号码
kk.phone.call('10086');
@endsection

拨打电话 kk.phone.call(phoneNumber, [needConfirm])

params:

名称 描述
phoneNumber number 电话号码
needConfirm boolean, optional(true) 是否由用户确认拨号,true为需要确认后才拨号,iOS只支持false

短信 sms

示例代码

@section('发送短信示例代码')
//发送短信
kk.phone.sms('10086', '打造大连接,蓝凌全新企业移动互联解决方案');
@endsection

发送短信 kk.phone.sms(phoneNumber, [content])

params:

名称 描述
phoneNumber string 电话号码
content string, optional(“) 短信内容

设备模块 Device

设备模块可以设置设备屏幕显示方向及获取网络类型

设置屏幕方向 setOrientation

示例代码:

@section('设置屏幕方向为竖屏')
// 将屏幕设置为竖屏
kk.device.setOrientation( 1 );
@endsection
@section('设置屏幕方向为横屏')
// 将屏幕设置为横屏
kk.device.setOrientation( 2 );
@endsection

设置设备屏幕的显示方向 kk.device.setOrientation(orientation)

params:

名称 描述
orientation number 可选值 1/2,1:竖屏,2:横屏

获取网络类型 getNetType

示例代码:

@section('获取网络类型示例代码')
// 获取网络类型 
kk.device.getNetType( function( res ){
  var netType = res.netType;
  switch( netType ){
    case '':
      // 无网络,使用本地数据
      break;
    case '2G':
      // 使用远程文本内容
      break;
    case '3G':
      // 使用远程的图片
      break;
    case '4G':
      // 使用远程的图片
      break;
    case 'WIFI':
      // 使用远程的视频
      break;
  }
});
@endsection

获取设备当前的网络类型 kk.device.getNetType(done, [fail])

params:

名称 描述
done function 成功回调,接收包含网络类型的对象作为参数,详见callbacks
fail function,optional 失败回调

callbacks:

名称 描述
netType string 2G/3G/4G/WIFI,空字符串代表无网络,iOS下2G/3G均返回3G

设置剪贴板内容 setClipboard

示例代码:

@section('设置剪贴板内容示例代码')
// 设置剪贴板内容
kk.device.setClipboard( 'Welcome to kk' );
@endsection

设置剪贴板内容 kk.device.setClipboard(text)

params:

名称 描述
text string 要拷贝的内容

媒体模块 Media

媒体模块,封装了拍照、录音、录制视频、选择相册图片、存储图片、播放音视频等能力

拍照(单张) getPicture

示例代码

@section('拍照(数据类型:file)')
//拍照(数据类型:file)
kk.media.getPicture({
  sourceType: 'camera',
  destinationType: 'file',
  encodingType: 'png',
  savePath: 'sdcard://media/photo/single.png'
}, function(res){
  //res.imageFileOSPath, 可以直接设置为<img>标签的src来使用
  //res.imageURI,可以作为kk.media.save2album()的filepath,将相片保存到相册
  console.log('参数传入的保存路径:' + res.imageURI + ', 实际路径:' + res.imageFileOSPath);
  $('#my-img').attr('src', res.imageFileOSPath);
}, function(code, msg){
  console.log('错误信息:' + msg + ', 错误代码:' + code);
});
@endsection
@section('拍照(数据类型:data)')
//拍照(数据类型:data),不需指定文件格式和储存路径
kk.media.getPicture({
  sourceType: 'camera',
  destinationType: 'data'
}, function(res){
  //res.imageData, 可以直接设置为<img>标签的src来使用
  console.log('照片的base64编码:' + res.imageData);
  $('#my-img').attr('src', res.imageData);
}, function(code, msg){
  console.log('错误信息:' + msg + ', 错误代码:' + code);
});
@endsection

获取单张照片 kk.media.getPicture([options,] done, [fail])

params:

名称 描述
options object, optional 配置参数,详见options
done function 成功回调,返回一个对象作为参数,详见callbacks
fail function, optional 失败回调

options:

名称 描述
sourceType string(camera) 数据来源(album/camera),缺省为camera
destinationType string(data) 期望的数据类型(file/data),缺省为data
targetWidth number(100) 期望的图片宽度,缺省为100,单位px
targetHeight number(100) 期望的图片高度(和targetWidth配合,同时使用),缺省为100,单位px
encodingType string(png) 期望得到的图片的格式(jpeg/ png),缺省为png
quality number(50) 图片压缩率 0-100,缺省为50, encodingType 为png时,该参数无效
savePath string 文件的保存路径,前提是destinationType = file,若没有传入,则系统自动生成一个路径
exifFlag boolean 是否在照片信息中保存GPS位置信息

callbacks:

名称 描述 条件
imageData string 图片的base64编码,可以直接设置为标签的src来使用 destinationType = data时返回
imageFileOSPath string 图片在操作系统上的实际路径 destinationType = file 时返回, 可直接作为图片的src来显示
imageURI string 保存文件的协议路径(若没有传入,则系统自动生成一个路径) destinationType = file 时返回
imageTime Date 图片创建时间对象 当destinationType = file时,多张以逗号进行分割
imageTimeString String 图片创建时间字符串,以yyyymmddhhmmss格式显示 当destinationType = file时,多张以逗号进行分割

fail:

错误代码 错误信息
-90 参数错误
-1 获取错误

获取签名图片 getSignImage

示例代码

@section('获取签名图片示例代码')
kk.media.getSignImage({
  width: 100,
  height: 100,
  penSize: 3,
  penColor: 2
}, function(res){
  console.log('签名图片的路径:' + res.resultPath);
}, function(code, msg){
  console.log('错误信息:' + msg + ',错误代码:' + code);
});
@endsection

获取签名的图片 kk.media.getSignImage(options, done, [fail])

params:

名称 描述
options object 配置参数,详见options
done function 成功回调,返回一个对象作为参数,详见callbacks
fail function, optional 失败回调

options:

名称 描述
width number 输出的图片宽度,单位px
height number 输出的图片高度(和width配合,同时使用),单位px
penSize number(2), optional 画笔的粗细:1.细,2.一般,3.粗,缺省为2
penColor number(1), optional 画笔的颜色:1.黑,2.蓝,3.红,缺省为1

callbacks:

名称 描述
resultPath string 保存签名图片的路径

fail:

错误代码 错误信息
-1 用户取消
-3 处理图片错误
-90 参数错误

保存图片到相册 save2album

示例代码

@section('保存本地图片到相册')
//保存本地图片到相册 
kk.media.save2album({
  filepath: 'sdcard://media/photo/multi/101.jpeg'
}, function(){
  console.log('照片保存成功');
}, function(code, msg){
  console.log('错误信息:' + msg + ',错误代码:' + code);
});
@endsection
@section('保存在线图片到相册')
//保存在线图片到相册 
kk.media.save2album({
  filepath: 'http://www.baidu.com/icon.jpg'
}, function(){
  console.log('照片保存成功');
}, function(code, msg){
  console.log('错误信息:' + msg + ',错误代码:' + code);
});
@endsection

保存图片到相册 kk.media.save2album(options, [done], [fail])

params:

名称 描述
options object 配置选项,详见options
done function, optional 成功回调
fail function, optional 失败回调

options:

名称 描述
filepath string 要保存的照片路径,可以是在线图片

fail:

错误代码 错误信息
1 文件不存在
9 保存到相册失败

预览图片 previewImage

示例代码

@section('预览图片示例代码')
// 预览图片
kk.media.previewImage({
  paths: [
    'sdcard://1.jpg',
    'sdcard://2.jpg',
    'sdcard://3.jpg',
  ]
}, function(code, msg){
  console.log('错误信息:' + msg + ',错误代码:' + code);
});
@endsection

使用原生UI来浏览图片(可以是多张图片), 并支持图片的缩放操作 kk.media.previewImage(options, [fail])

params:

名称 描述
options object 配置参数,详见options
fail function, optional 失败回调

options:

名称 描述
paths array 所要预览图片的地址列表,暂时仅支持传入本地图片地址, 即文件路径列出的几种地址
current int, optional(0) 当前图片的索引(在列表中的序号), 索引从0开始计数

fail:

错误代码 错误信息
-9 路径参数为空
999 预览失败(地址没有按顺序填写,中间存在空值)

录制视频 captureVideo

示例代码

@section('录制视频示例代码')
//录制视频
kk.media.captureVideo({
  quality: 'MEDIUM',
  savePath: 'sdcard://media/video/test.mov',
  duration: 20
}, function(res){
  console.log('文件名:' + res.name);
  console.log('文件全路径:' + res.fullPath);
  console.log('MIME类型:' + res.type);
  console.log('最后修改的时间:' + res.lastModifiedDate);
  console.log('文件大小:' + res.size);
  console.log('录制结束方式:' + res.endingType);
}, function(code, msg){
  console.log('错误信息:' + msg + ',错误代码:' + code);
});
@endsection

录制视频,录制的格式取决于操作系统,下面有说明 kk.media.captureVideo([options], done, [fail])

视频录制格式:

名称 描述
Android下 录制的格式为3gp
iOS下 录制的格式为mov

params:

名称 描述
options object, optional 配置参数,详见options
done function 成功回调,返回一个对象作为参数,详见callbacks
fail function, optional 失败回调

options:

名称 描述
quality string,optional(‘LOW’) 质量参数,可选值:LOW,MEDIUM,HIGH
savePath string 要保存的路径 (如果不指定,将使用sdcard://协议保存一个随机文件名)
duration number,optional 录像时长(单位:秒;如果不指定,则默认长度不做限制)

callbacks:

名称 描述
name string 不含路径信息的文件名
fullPath string 包含文件名的文件全路径
type string MIME类型
lastModifiedDate string 文件最后修改的日期和时间,如20150629154714,表示最后修改时间是“2015年06月29日15时47分14秒”
size number 文件大小(单位为字节)
endingType number 录制结束方式,0:主动结束,1:来电或其他因素打断

fail:

错误代码 错误信息
-1 用户取消
-2 创建录制文件失败

带native UI的录音 captureAudio

示例代码

@section('录音示例代码')
//带native UI的录音
kk.media.captureAudio(function(res){
  console.log('文件名:' + res.name);
  console.log('文件全路径:' + res.fullPath);
  console.log('文件类型:' + res.type);
  console.log('文件大小:' + res.size);
}, function(code, msg){
  if(code == -3){
    console.log('录音被取消了');
  }else if(code == -9){
    console.log('录音错误');
  }else{
    console.log('录音失败');
  }
});
@endsection

带native UI的录音能力 kk.media.captureAudio(done, [fail])

params:

名称 描述
done function 成功回调,返回一个对象作为参数,详见callbacks
fail function, optional 失败回调

callbacks:

名称 描述
name string 文件名
fullPath string 文件在系统上的绝对路径
type string 文件类型
size number 文件大小(单位为字节)

fail:

错误代码 错误信息
±3 录音被取消了
-9 录音错误

带native UI的音频播放 playAudio

示例代码

@section('音频播放示例代码')
//带native UI的音频播放
kk.media.playAudio('sdcard://media/audio/test.wav', function(code, msg){
  console.log('音频播放失败,错误代码:' + code + ' ,错误信息:' + msg );
});
@endsection

带native UI的音频播放能力 kk.media.playAudio(filePath, [fail])

params:

名称 描述
filePath string 音频文件路径
fail function, optional 失败回调

fail:

错误代码 错误信息
-3 播放被取消了
-9 播放错误

加密/解密模块 Crypto

加密模块提供文件、字符串的加密和解密能力

加密字符串 encrypt

示例代码:

@section('加密字符串示例代码')
//加密字符串
kk.crypto.encrypt({
  text: '需要加密的字符串',
  key: 'mykey'
}, function( res ){
  console.log('加密后的字符串:' + res.text );
  localStorage.encryptText = res.text;
},function( code, msg ){
  console.log('错误代码:' + code + ' ,错误信息:' + msg );
});
@endsection

加密字符串 kk.crypto.encrypt(options, done, [fail])

params:

名称 描述
options object 配置参数,详见options
done function 成功回调,接收包含加密后的字符串的对象作为参数,详见callbacks
fail function,optional 失败回调

options:

名称 描述
text string 要加密的字符串
key string 密钥

callbacks:

名称 描述
text string 加密后的字符串

fail:

错误代码 错误信息
9 加密失败

解密字符串 decrypt

示例代码:

@section('解密字符串示例代码')
//解密字符串
var encryptText = localStorage.encryptText;
// encryptText 是一段加密后的字符串,类似 '7kxl8E55rJFm642Oelilew==';
kk.crypto.decrypt({
  text: encryptText,
  key: 'mykey'
}, function( res ){
  console.log('解密后的字符串:' + res.text );
}, function( code, msg ){
  console.log('错误代码:' + code + ' ,错误信息:' + msg );
});
@endsection

解密字符串 kk.crypto.decrypt(options, done, [fail])

params:

名称 描述
options object 配置参数,详见options
done function 成功回调,接收包含解密后的字符串的对象作为参数,详见callbacks
fail function,optional 失败回调

options:

名称 描述
text string 被加密的字符串
key string 密钥

callbacks:

名称 描述
text string 解密后的字符串

fail:

错误代码 错误信息
9 解密失败

混淆文件(加密文件) obscureFile

示例代码:

@section('加密文件:保持加密文件路径不变')
// 混淆文件:保持加密文件路径不变
kk.crypto.obscureFile( {
  obscure: 'mykey2',
  sourceFile: 'sdcard://test/abc.mov',
  dealSourceFile: true
}, function( ){
  console.log('文件加密成功');
}, function( code, msg ){
  console.log('文件加密失败,错误代码:' + code + ',错误信息:' + msg);
});
@endsection
@section('加密文件:文件加密后复制到其他路径')
// 混淆文件:文件加密后复制到其他路径
kk.crypto.obscureFile( {
  obscure: 'mykey2',
  sourceFile: 'sdcard://test/abc.mov',
  outputFile: 'sdcard://output/123.mov'
}, function( ){
  console.log('文件加密成功');
}, function( code, msg ){
  console.log('文件加密失败,错误代码:' + code + ',错误信息:' + msg);
});
@endsection

混淆文件(加密文件) kk.crypto.obscureFile(options, [done], [fail])

params:

名称 描述
options string 配置选项,详见options
done function,optional 成功回调,不接收参数
fail function,optional 失败回调

options:

名称 描述
obscure string 混淆因子(密钥)
sourceFile string 源文件路径
dealSourceFile boolean,optional(false) 是否直接处理源文件,为true时,忽略outputFile属性
outputFile string 文件输出路径,dealSourceFile为true时,此属性无效

fail:

错误代码 错误信息
9 源文件不存在或源文件数据为空

恢复文件(解密文件) restoreFile

示例代码:

@section('解密文件:删除加密的源文件')
//解密文件
kk.crypto.restoreFile( {
  obscure: 'mykey2',
  sourceFile: 'sdcard://output/123.mov',
  dealSourceFile: true
}, function(){
  console.log('文件解密成功,' );
}, function( code, msg ){
  console.log('文件解密失败,错误代码:' + code + ',错误信息:' + msg);
});
@endsection
@section('解密文件:保留加密的源文件')
// 保留加密的源文件,解密密后生成新的文件
kk.crypto.restoreFile( {
  obscure: 'mykey2',
  sourceFile: 'sdcard://output/123.mov'
  outputFile: 'sdcard://test/tmp.mov',
}, function( ){
  console.log('文件解密成功');
}, function( code, msg ){
  console.log('文件解密失败,错误代码:' + code + ',错误信息:' + msg);
});
@endsection

恢复文件 kk.crypto.restoreFile(options, [done], [fail])

params:

名称 描述
options string 配置选项,详见options
done function,optional 成功回调,不接收参数
fail function,optional 失败回调

options:

名称 描述
obscure string 混淆因子(密钥)
sourceFile string 源文件路径
dealSourceFile boolean,optional(false) 是否直接处理源文件,为true时,忽略outputFile属性
outputFile string 文件输出路径,dealSourceFile为true时,此属性无效

fail:

错误代码 错误信息
9 源文件不存在或源文件数据为空

代理模块 Proxy

代理请求模块,封装了与服务器进行数据交互的能力。

Proxy.request调用方式类似于$.ajax,可以与服务器进行文本数据交互。

Proxy.Download和Proxy.Upload可以和服务器之间进行文件的下载和上传,支持断点续传。这两个能力被封装成了类,需要 new 创建实例来使用。

设置请求的默认参数 requestSetup

示例代码

@section('设置请求的默认参数示例代码')
//设置请求的默认参数 
kk.proxy.requestSetup({
    url: '/request.do',//请求的URL
    data: {//请求的参数,JSON Object或字符串
        "username": "landray",
        "password": "connect"
    },
    contentType: 'application/json',//参数的编码格式
    dataType: 'json',//返回数据格式
    headers: {//额外的http头
        'Accept-Language': 'zh',
        'Date': 'HTTP-date'
    },
    success: function(res){//成功回调
        console.log(JSON.stringify(res));
    },
    error: function(code, msg){//失败回调
        console.log('错误信息:' + msg + ', 错误代码:' + code);
    }
})
@endsection

设置请求的默认参数,返回设置后参数集合对象 kk.proxy.requestSetup(options)

params:

名称 描述
options object 配置参数,详见options

options:

名称 描述
url string 请求的URL。实际URL是管理台配置的地址和相对地址拼接起来的地址
data object/string 请求的参数,JSON Object或者字符串
contentType string,optional(‘form’) 发送参数时的编码格式,预定义了两个简写模式:form/json,也可以自定,详见contentType
dataType string,optional('text’) 返回数据格式,可选值有text/json,为json时,返回的数据就是一个json对象
headers object,optional 额外的http头
success function,optional 成功回调,接收一个对象作为参数,详见callbacks
error function,optional 失败回调

示例代码

@section('')
// ContentType使用示例
contentType:'application/json;charset=UTF-8'
@endsection

contentType:

名称 描述
application/x-www-form-urlencoded 以表单形式发送请求体,默认值
application/json 以JSON形式发送请求体

callbacks:

结构与 opitons 一致

代理请求 request

示例代码

@section('代理请求示例代码')
//代理请求
kk.proxy.request({
    url: '/request.do',//请求的URL
    data: {//请求的参数,JSON Object
        "username": "landray",
        "password": "connect"
    },
    dataType: 'json',//返回数据格式
    success: function( res ){//成功回调
        console.log(JSON.stringify(res));
    },
    error: function( code, msg ){//失败回调
        console.log('代理请求失败,错误代码:' + code + ' ,错误信息: ' + msg );
    }
});
@endsection
@section('代理请求:预先设定默认参数')
//如果多个请求参数相同,可以设置默认参数以简化请求
var req = kk.proxy.requestSetup({
    contentType: 'application/json',//参数的编码格式
    dataType: 'json',//返回数据格式
    headers: {//额外的http头
        'Accept-Language': 'zh',
        'Date': 'HTTP-date'
    },
    error: function(code, msg){//失败回调
        console.log('错误信息:' + msg + ', 错误代码:' + code);
    }
});

//简化后的请求
req.request({
    url: '/request.do';         //请求的URL
    data: {                     //请求的参数,JSON Object
        "username": "landray",
        "password": "connect"
    },
    success: function( res ){
        console.log(JSON.stringify(res));
    }
});
@endsection

代理请求 kk.proxy.request(options)

params:

名称 描述
options object 配置参数,与requestSetup的参数一致,详见requestSetup(options)

callbacks:

名称 描述
content string/object 返回数据类型form时对应类型是stringjson时对应的类型是object

fail:

错误代码 错误信息
102 代理请求失败

文件上传构造函数 Upload

示例代码

@section('文件上传构造函数示例代码')
// 创建一个代理实例
var proxy = new kk.proxy.Upload({
    url: '/upload/test.txt',        //文件上传至服务器的地址
    path: 'sdcard://upload.txt',    //文件在本地地址
    isContinuous: false             //是否断点续传,默认不支持断点续传
}, function(res){
    if(res.progress != 100){
        console.log('上传进度:' + res.progress);    
    }else{
        console.log('上传完成,文件地址:' + res.path);
    }
}, function(code, msg){
    console.log('错误信息:' + msg + ',错误代码:' + code);
});

// 开始上传
proxy.start();

// 暂停上传,注意,暂停是异步的,会有一点延时
proxy.pause();

// 恢复上传
proxy.resume();

// 停止上传,也是异步的
proxy.stop();
@endsection

上传的构造函数 new kk.proxy.Upload(options, done, fail)

params:

名称 描述
options object 配置参数,详见options
done function 成功回调,接收一个对象作为参数,详见callbacks. 上传过程中会不停调用该回调, 直至上传完成
fail function 失败回调

options:

名称 描述
url string 文件上传至服务器的地址
path string 文件在本地地址
isContinuous boolean,optional(false) 是否断点续传,true表示断点续传

callbacks:

名称 描述
progress number 文件已上传进度,0~100,当上传至100时表示上传完成
path string 文件在本地的地址,上传完成时才会有该属性

fail:

错误代码 错误信息
-1 未连接到服务器
-2 文件本地地址为空
-3 和服务器交互发生异常
404 上传的文件不存在
其它 number 透传服务端错误码

文件下载构造函数 Download

示例代码

@section('文件下载构造函数示例代码')
// 创建一个代理实例
var proxy = new kk.proxy.Download({
    url: '/download/test.txt',//文件下载至服务器的地址
    path: 'sdcard://download.txt',//文件在本地地址
    isContinuous: false//是否断点续传,默认false,不支持断点续传
}, function(res){
    if(res.progress != 100){
        console.log('下载进度:' + res.progress);    
    }else{
        console.log('下载完成,文件地址:' + res.path);
    }
}, function(code, msg){
    console.log('错误信息:' + msg + ',错误代码:' + code);
});

// 开始下载
proxy.start();

// 暂停下载,注意,暂停是异步的,会有一点延时
proxy.pause();

// 恢复下载
proxy.resume();

// 停止下载,也是异步的
proxy.stop();
@endsection

下载的构造函数 new kk.proxy.Download(options, done, fail)

params:

名称 描述
options object 配置参数,详见options
done function 成功回调,接收一个对象作为参数,详见callbacks. 下载过程中会不停调用该回调, 直至下载完成
fail function 失败回调

options:

名称 描述
url string 文件在服务器的地址
path string 文件保存到本地的地址
isContinuous boolean,optional(false) 是否断点续传,true表示断点续传

callbacks:

名称 描述
progress number 文件已下载进度,0-100,当下载至100时表示下载完成
path string 文件在本地的地址,下载完成时才会有该属性

fail:

错误代码 错误信息
-1 未连接到服务器
-2 保存到本地文件失败
-3 和服务器交互发生异常
-4 下载内容变了
其他 number 透传服务器错误码

文件压缩解压缩模块 Zip

文件压缩解压缩模块,提供了文件压缩和解压缩能力

压缩文件 zip

示例代码

@section('压缩文件示例代码')
kk.zip.zip({
  folderPath: 'sdcard://test/zipFolder',
  zipFilePath: 'sdcard://test/zipFolder.zip'
}, function(res){
  console.log('压缩后的zip文件路径:' + res.zipFilePath);
  console.log('需要压缩的文件夹:' + res.FolderPath);
}, function(code, msg){
  console.log('错误信息:' + msg + ',错误代码:' + code);
});
@endsection

压缩文件 kk.zip.zip(options, [done], [fail])

params:

名称 描述
options object 配置选项,详见options
done function, optional 成功回调,返回一个对象作为参数,详见callbacks
fail function, optional 失败回调

options:

名称 描述
folderPath string 要压缩的文件(夹)路径
filePaths array 要被压缩的多个文件(夹)的路径,中间用逗号分隔。如果folderPath参数提供了,本参数会被忽略。
zipFilePath string 压缩生成的zip文件路径

callbacks:

名称 描述
zipFilePath string 压缩后的zip文件路径
FolderPath string 源文件(夹)的路径,Android无此属性

fail:

错误代码 错误信息
1 FolderPath对于native为空或者不存在
8 参数非法
9 压缩失败

解压文件 unzip

示例代码

@section('解压文件示例代码')
kk.zip.unzip({
    zipFilePath: 'sdcard://test/zipFolder.zip', 
    outPath: 'sdcard://test/unzipFolder'
}, function(res){
    console.log('需要解压文件的路径:' + res.zipFilePath);
    console.log('解压后的输出目录:' + res.outPath);
}, function(code, msg){
    console.log('错误信息:' + msg + ',错误代码:' + code);
});
@endsection

解压文件 kk.zip.unzip(options, [done], [fail])

params:

名称 描述
options object 配置选项,详见options
done function,optional 成功回调,返回一个对象作为参数,详见callbacks
fail function,optional 失败回调

options:

名称 描述
zipFilePath string 需要解压文件(夹)的路径
outPath string 解压后的输出目录

callbacks:

名称 描述
zipFilePath string 源压缩文件的路径,Android无此属性
outPath string 解压后的输出目录

fail:

错误代码 错误信息
1 zipFilePath对于native为空或者不存在
9 解压缩失败

文件操作模块 File

该模块为一个类,使用时需要new 一个实例 可以获取文件信息、查看文件、删除文件等 文档中 kk.File::method 表示使用file的实例来调用原型方法

构造函数 File

示例代码:

@section('创建file实例')
// 创建一个File实例
var file = new kk.File('sdcard://kktest/fileTest.txt');
// 用file来调用实例的方法
@endsection

需要new 一个实例,才能调用File的其他API能力。

File 类的构造函数 kk.File(filePath)

params:

名称 描述
filePath String 文件路径

获取文件路径 getOSPath

示例代码:

@section('获取文件路径示例代码')
// 创建一个File实例
var file = new kk.File('sdcard://kktest/fileTest.txt');

//获取文件路径
file.getOSPath(function(res){
  console.log('文件在系统上的路径:' + res.OSPath);
});
@endsection

获取文件在操作系统上的路径 kk.File::getOSPath(done, [fail])

params:

名称 描述
done function 成功回调,返回一个对象作为参数,详见callbacks
fail function,optional 失败回调

callbacks:

名称 描述
OSPath string 文件在系统上的路径

fail:

错误代码 错误信息

获取文件信息 info

示例代码:

@section('获取文件信息示例代码')
// 创建一个File实例
var file = new kk.File('sdcard://kktest/fileTest.txt');

//获取文件信息 
file.info(function(res){
  console.log('文件名称: ' + res.name);
  console.log('文件大小:' + res.size);
  console.log('文件最后修改时间:' + res.lastModifiedTime);
  console.log('文件相对存储路径:' + res.path);
  console.log('是否是文件夹:' + res.isDir);
}, function(code, msg){
  console.log('错误信息:' + msg + ',错误代码:' + code);
});
@endsection

获取文件信息 kk.File::info(done, [fail])

params:

名称 描述
done function 成功回调,返回一个对象作为参数,详见callbacks
fail function,optional 失败回调

callbacks:

名称 描述
name string 文件名称
size string 文件大小,单位byte
lastModifiedTime string 文件最后修改时间,如20150629154714,表示最后修改时间是“2015年06月29日15时47分14秒”
path string 文件的相对存储路径
isDir boolean 路径是否指向的是一个文件夹

fail:

错误代码 错误信息
1 文件不存在

判断文件是否存在 exists

示例代码

@section('判断文件是否存在示例代码')
// 创建一个File实例
var file = new kk.File('sdcard://kktest/fileTest.txt');

//判断文件是否存在
file.exists(function( res ){
  if( res.exists ){
    console.log('文件存在');
  }else{
    console.log('文件不存在');
  }
});
@endsection

判断文件是否存在 kk.File::exists(done)

params

名称 描述
done function 成功回调,返回一个对象作为参数,详见callbacks

callbacks

名称 描述
exists boolean true 表示文件存在,false 表示文件不存在

删除文件 remove

示例代码

@section('删除文件示例代码')
// 创建一个File实例
var file = new kk.File('sdcard://kktest/fileTest.txt');

//删除文件
file.remove(function( ){
  console.log('删除文件成功 ');   
}, function(code, msg){
  console.log('错误信息:' + msg + ',错误代码:' + code);
});
@endsection

删除文件 kk.File::remove(done, [fail])

params:

名称 描述
done function 成功回调
fail function, optional 失败回调

fail:

错误代码 错误信息
1 不能访问指定的路径
2 文件不存在
9 删除失败

查看文件 view

示例代码

@section('查看文件示例代码')
// 创建一个File实例
var file = new kk.File('sdcard://kktest/fileTest.txt');

//查看文件
file.view({
  useWebview: true,
  otherButton: '1',
  mimeType: 'text/txt'
}, function(res){
  console.log('文件信息:' + JSON.stringify(res));
  if( res.buttonIndex == 1 ){
    console.log('自定义 按钮1 被触发');
  }
}, function(code, msg){
  console.log('错误信息:' + msg + ',错误代码:' + code);
});
@endsection

查看文件 kk.File::view([options,] done, [fail])

params:

名称 描述
options string, optional 配置参数,详见options
done function 成功回调,options默认和自定义时返回对象的属性不同,详见callbacks
fail function, optional 失败回调

options:

名称 描述
useWebview boolean,optional(true) 是否使用webview打开,Android才能设置为false
otherButton string,optional 可以定义其他的按钮文字(缺省带返回按钮),如果多个用逗号分隔,useWebview为true时生效
mimeType string,optional 文件的类型,如果不传,从文件名分析

callbacks(默认配置):

名称 描述
filepath string 文件的相对路径
buttonIndex number 接收按钮顺序号作为参数,一般值为1~N,0表示按了返回
useWebview boolean 是否使用webview打开

callbacks(自定义配置):

名称 描述
useWebview boolean 是否使用webview打开
buttonIndex number 接收按钮顺序号作为参数,一般值为1~N,0表示按了返回
otherButton string 返回时点击的按钮的value属性值,默认‘返回'键值为0
mimeType string 文件的类型
filepath string 文件的相对路径

fail:

错误代码 错误信息

读取文件内容 readAsText

示例代码

@section('读取文件内容示例代码')
// 创建一个File实例
var file = new kk.File('sdcard://kktest/fileTest.txt');

//读取文件内容
file.readAsText('utf-8', function(res){
  console.log('文本内容:' + res.content);
}, function(code, msg){
  console.log('错误信息:' + msg + ',错误代码:' + code);
});
@endsection

读取文本文件内容 kk.File::readAsText([encoding,] done, [fail])

params:

名称 描述
encoding encoding, optional 编码方式,默认'utf-8'方式编码
done function 成功回调,返回一个对象作为参数,详见callbacks
fail function, optional 失败回调

callbacks:

名称 描述
content string 接收有content属性的对象作为参数,content为文本内容

fail:

错误代码 错误信息
1 文件不存在
9 没有查看权限

将文件转换base64字符串 readAsBase64

示例代码

@section('将文件转换base64字符串示例代码')
// 创建一个File实例
var file = new kk.File('sdcard://kktest/fileTest.jpg');

// 读取文件内容
file.readAsBase64(function(res){
  var imgData = 'data:image/jpeg;base64,' + res.content;
  // 在此即可将图片的src设置为 imgData, 图片即可显示
}, function(code, msg){
  console.log('错误信息:' + msg + ',错误代码:' + code);
});
@endsection

读取文本文件内容 kk.File::readAsBase64(done, [fail])

params:

名称 描述
done function 成功回调,返回一个对象作为参数,详见callbacks
fail function, optional 失败回调

callbacks:

名称 描述
content string 接收有content属性的对象作为参数,content为base64字符串

fail:

错误代码 错误信息
1 文件不存在

拷贝文件 copyTo

示例代码

@section('拷贝文件示例代码')
// 创建一个File实例
var file = new kk.File('sdcard://kktest/fileTest.txt');

//拷贝文件
file.copyTo('sdcard://kktest/test.txt', function(){
    console.log('拷贝文件成功');
},
function(code, msg){
    console.log('错误信息:' + msg + ',错误代码:' + code);
});
@endsection

拷贝文件 kk.File::copyTo(targetPath, done, [fail])

params:

名称 描述
targetPath string 目标文件的路径
done function 成功回调,没有回调参数
fail function, optional 失败回调

fail:

错误代码 错误信息
1 源文件不存在
9 文件拷贝发生错误

定位模块 Location

封装了地理定位的能力

获取当前位置 getLocation

示例代码:

@section('获取当前位置示例代码')
//获取当前位置
kk.location.getLocation( function( res ){
    console.log( '经度:' + res.longitude );
    console.log( '纬度:' + res.latitude );
    console.log( '海拔:' + res.altitude );
});
@endsection

获取当前位置的坐标信息,包括经度、纬度、海拔 kk.location.getLocation(done, [fail])

params:

名称 描述
done function 成功回调,接收一个对象作为参数,详见callbacks
fail function,optional 失败回调

callbacks:

名称 描述
longitude string 经度
latitude string 纬度
altitude string 海拔

fail:

错误代码 错误信息
3 参数非法
9 没有定位功能

历史记录模块 History

历史记录模块,提供操作webview历史记录的能力(前进、后退等)

是否可以前进及后退 canGo

示例代码:

@section('判断是否可以前进及后退示例代码')
//判断是否可以前进及后退 
kk.history.canGo(function( res ){ 
    if( res.canGoBack ){
        console.log('页面可后退')
    }else{
        console.log('页面不可后退')
    }

    if( res.canGoForward ){
        console.log('页面可前进');
    }else{
        console.log('页面不可前进');
    }
});
@endsection

获取当前页面是否可以进行前进及后退操作 kk.history.canGo(done)

params:

名称 描述
done function 成功回调,返回一个对象作为参数,详见callbacks

callbacks:

名称 描述
canGoBack boolean 是否能够后退
canGoForward boolean 是否能能够前进

判断是否有上一页 hasPrev

示例代码:

@section('判断是否有上一页示例代码')
//判断是否有上一页 
kk.history.hasPrev(function(res){
    if(res.hasPrev){
        console.log('页面有上一页');
    }else{
        console.log('页面没有上一页');
    }
});
@endsection

判断当前页面是否有上一页 kk.history.hasPrev(done)

params:

名称 描述
done function 成功回调,返回一个对象作为参数,详见callbacks

callbacks:

名称 描述
hasPrev boolean 是否有上一页,true 为有上一页

上一页 back

示例代码:

@section('返回上一页示例代码')
//返回上一页
kk.history.back( function(){
    console.log('当前页不能做返回操作');
});
@endsection

返回到上一页 kk.history.back([fail])

params:

名称 描述
fail function,optional 失败回调,如果没有上一页,则会调用该函数,该函数不接受参数

下一页 forward

示例代码:

@section('前往下一页示例代码')
//前进下一页
kk.history.forward( function(){
    console.log('当前页不能做跳转下一页操作');
});
@endsection

前进到下一页 kk.history.forward([fail])

params:

名称 描述
fail function,optional 失败回调,如果没有下一页,则会调用该函数,该函数不接受参数

扫描器模块 Scanner

扫描器模块提供扫描二维码、条形码及生成二维码的能力

扫描条形码 scanBarCode

示例代码

@section('扫描条形码示例代码')
//扫描条形码
kk.scaner.scanBarCode(function(res){
    console.log('条形码内容:' + res.code);
});
@endsection

扫描条形码 kk.scaner.scanBarCode(done, [fail])

params:

名称 描述
done function 成功回调,返回一个对象作为参数,详见callbacks
fail function, optional 失败回调

callbacks:

名称 描述
code string 条形码的内容

fail:

错误代码 错误信息
-1 用户取消
1 设备不支持

扫描二维码 scanTDCode

实例代码

@section('扫描二维码示例代码')
//扫描二维码
kk.scaner.scanTDCode(function(res){
    console.log('二维码内容:' + res.code);
});
@endsection

扫描二维码 kk.scaner.scanTDCode(done, [fail])

params:

名称 描述
done function 成功回调,返回一个对象作为参数,详见callbacks
fail function, optional 失败回调

callbacks:

名称 描述
code string 二维码的内容

fail:

错误代码 错误信息
-1 用户取消
1 设备不支持

生成二维码 getQRCode

示例代码

@section('生成二维码示例代码')
//生成二维码
kk.scaner.getQRCode({
    content: '蓝凌软件股份有限公司',
    targetSize: 100,
    destinationType: 'file',
    savePath: 'sdcard://easymi/1.png'
}, function(res){
    console.log('二维码处理后的文件保存路径:' + res.imageURI);
    console.log('二维码处理后的文件的操作系统路径:' + res.imageFileOSPath);
}, function(code, msg){
    console.log('错误信息:' + msg + ',错误代码:' + code);
});
@endsection

生成二维码图片,图片格式为png kk.scaner.getQRCode(options, [done], [fail])

params:

名称 描述
options object 生成二维码的配置项,详见options
done function, optional 成功回调,返回一个对象作为参数,详见callbacks
fail function, optional 失败回调

options:

名称 描述
content string 二维码内容
targetSize number 输出的正方形图片的边长,范围:50-800
destinationType string 文件输出形式,可选值:file/data
savePath string 输出类型为file时有效,不指定则随机文件名保存至 sdcard://easymi/目录下

callbacks:

名称 描述
imageURI string 处理后的文件保存路径(当destinationType为file时,返回此属性)
imageFileOSPath string 处理后的文件的操作系统路径(当destinationType为file时,返回此属性)
imageData string 图片内容的base编码(当destinationType为data时,返回此属性)

fail:

错误代码 错误信息
9 生成失败

菜单模块 Menu

menu模块,提供了对webview右上角的菜单项的相关能力,如显示或隐藏菜单项、分享等等

显示右上角菜单项目 showMenuItems

示例代码:

@section('显示右上角菜单项示例代码')
kk.menu.showMenuItems();
@endsection

显示应用容器(webview)右上角的菜单项 kk.menu.showMenuItems()

隐藏右上角菜单项目 hideMenuItems

示例代码:

@section('隐藏右上角菜单项示例代码')
kk.menu.hideMenuItems();
@endsection

隐藏应用容器(webview)右上角的菜单项 kk.menu.hideMenuItems()

兼容微信的能力模块 Wx

兼容微信JS_SDK能力的模块,目前仅兼容微信和kk共有的能力,能力调用方式和微信一致

wx的ready

示例代码

@section('准备调用微信API示例代码')
//wx的ready
wx.ready(function(){
  console.log('准备调用微信API');
});
@endsection

wx的ready,兼容微信,区别在于回调函数多了参数 kk.wx.ready(fn)

params:

名称 描述
fn function 成功回调

能力支持检查 checkJsApi

示例代码

@section('能力支持检查示例代码')
//能力支持检查
kk.wx.checkJsApi({
  jsApiList: ['chooseImage'],
  success: function(res) {
    // 以键值对的形式返回,可用的api值true,不可用为false
    console.log(JSON.stringify(res));
    // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
  }
})
@endsection

检查是否支持该能力,完全兼容 kk.wx.checkJsApi(options)

params:

名称 描述
options object 配置选项,详见options

options:

名称 描述
jsApiList array 要检查是否支持的能力名称
success function 成功回调,返回一个对象作为参数,详见callbacks

callbacks:

名称 描述
checkResult object 以键值对的形式返回json object,可用的api值true,不可用为false
errMsg string 错误信息

预览图片 previewImage

示例代码

@section('预览图片示例代码')
// 预览图片
kk.wx.previewImage({
    current: 'sdcard://1.jpg',
    urls: [ 'sdcard://1.jpg', 'sdcard://2.jpg', 'sdcard://3.jpg']
});
@endsection

预览图片,目前仅支持预览本地图片 kk.wx.previewImage(options)

params:

名称 描述
options object 调用参数,详见options

options:

名称 描述
current string 当前显示图片的地址
urls array 需要预览的图片地址列表

录音 startRecord

示例代码

@section('微信录音示例代码')
//录音
kk.wx.startRecord();
@endsection

开始录音,完全兼容 kk.wx.startRecord()

停止录音 stopRecord

示例代码

@section('停止微信录音示例代码')
//停止录音
kk.wx.stopRecord({
  success: function(res){
    //用户停止录音后执行的回调函数
    console.log(JSON.stringify(res));
    console.log('录音文件路径:' + res.fullPath);
  }
});
@endsection

停止录音,兼容微信,但是参数不一致。 kk.wx.stopRecord(options)

params:

名称 描述
options object 调用参数,详见options

options:

名称 描述
success function 用户停止录音后的回调函数,返回的参数与captureAudio一致

录音自动结束事件 onVoiceRecordEnd

微信有录音1分钟的限制,kk没有,提供此函数仅为兼容,没有实际作用 kk.wx.onVoiceRecordEnd(obj)

播放语音 playVoice

示例代码

@section('播放语音示例代码')
//播放语音
kk.wx.playVoice({
  localId: '' // 此处得传kk约定的音频文件路径
});
@endsection

播放语音 kk.wx.playVoice(option)

params:

名称 描述
option object 调用参数,详见options

详见options:

名称 描述
localId string 语音地址。此处得传kk约定的音频文件路径

获取当前网络类型 getNetworkType

示例代码

@section('获取当前网络类型示例代码')
//获取当前网络类型 
kk.wx.getNetworkType({
  success: function(res){
    var networkType = res.networkType; 
    // 返回网络类型:空字符串,2G,3G(iOS下2G/3G均返回3G),WIFI
    console.log('获取当前网络类型:' + networkType);
  }
});
@endsection

获取当前网络类型,完全兼容微信 kk.wx.getNetworkType(options)

params:

名称 描述
option object 调用参数,详见options

options:

名称 描述
success function 回调函数,返回一个对象作为参数,详见callbacks

callbacks:

名称 描述
networkType string 返回网络类型:空字符串,2G,3G(iOS下2G/3G均返回3G),4G,WIFI

wx获取当前位置 getLocation

示例代码

@section('微信获取当前位置示例代码')
//获取当前位置
kk.wx.getLocation({
  success: function(res){
    console.log( '纬度:' + res.latitude );
    console.log( '经度:' + res.longitude );
    console.log( '海拔:' + res.altitude );
  }
});
@endsection

获取当前位置,兼容微信,缺少部分数据。返回参数与kk.location.getLocation一致

kk.wx.getLocation(options)

params:

名称 描述
option object 调用参数,详见options

options:

名称 描述
success function 回调函数,返回一个对象作为参数,详见callbacks

callbacks:

名称 描述
latitude string 纬度
longitude string 经度
altitude string 海拔

退出应用 closeWindow

示例代码

@section('退出应用示例代码')
//退出应用
kk.wx.closeWindow();
@endsection

关闭窗口(退出应用),完全兼容微信 kk.wx.closeWindow()

扫描二维码 scanQRCode

示例代码

@section('扫描二维码示例代码')
//扫描二维码
kk.wx.scanQRCode({
  needResult: 1,//只支持 needResult 为1
  scanType: 'barCode',
  success: function(res){
    console.log('扫描结果:' +  res.resultStr);
    //=>{"resultStr": "http://baidu.com"}
  }
})
@endsection

扫描二维码,部分兼容 kk.wx.scanQRCode(options)

params:

名称 描述
options object 配置选项,详见options

options:

名称 描述
needResult number 只支持 needResult 为1,直接返回扫描结果
scanType string 可以指定扫二维码还是一维码,默认二者都有
success function 回调函数,返回一个对象作为参数,详见callbacks

callbacks:

名称 描述
resultStr object 二维码的内容

友情链接: 微信JS-SDK说明文档

API:

名称 描述
chooseImage 拍照或从手机相册中选图接口
previewImage 预览图片接口
uploadImage 上传图片接口
downloadImage 下载图片接口

支付模块 Pay

支付能力模块 提供了向第三方支付的能力,目前仅限ios平台

微信App支付 weixin

示例代码:

@section('发起微信app支付示例代码')
kk.pay.weixin({
  appid: 'wx0aee55eb7d35b42b', // 你的appid,需要自己申请
  partnerid: '1229457302', // 商户号id
  prepayid: '12294573232', // 交易会话id
  package: 'Sign=WXPay',
  noncestr: 'Wm3WZYTPz0wzccnW',
  timestamp: '1477460765018',
  sign: '0f9de62fce790f9a083d5c99e95740ceb90c27ed'

}, function(){

}, function( code, msg){
  console.log('微信app支付失败回调 code: ' + code +' ,msg: ' + msg );
});
@endsection

微信支付API kk.pay.weixin(options, done, [fail])

params:

名称 描述
options object, optional 配置项,详见下面 options
done function 成功回调 可选
fail function, optional 失败回调

options:

名称 描述
appid 微信开放平台审核通过的应用APPID。必填
partnerid 微信支付分配的商户号。必填。
prepayid 微信返回的支付交易会话ID。必填。
package 暂填写固定值Sign=WXPay。必填。
noncestr 随机字符串,不长于32位。必填。
timestamp 时间戳,标准北京时间,自1970年1月1日 0点0分0秒以来的秒数。必填。
sign 签名,详见微信支付官网上的签名算法。必填。

fail:

错误代码 错误信息
-1 微信拒绝发起支付(一般是由于接入信息不正确、签名不正确等)
-2 用户取消
-3 设备上未安装微信

工具模块 Utils

工具模块提供了一些常用的工具函数。

判断参数类型 type

示例代码

@section('判断参数类型:不传type')
//不传递type:获取参数的数据类型
kk.utils.type(123);//=> Number
@endsection
@section('判断参数类型:传type')
//传递type:判断参数类型是否正确
kk.utils.type('obj', 'String');//=> true
@endsection

此方法有2种调用形式:

1.传递一个参数obj,返回obj的数据类型

获取参数的数据类型 kk.utils.type(obj)

return:

返回参数的数据类型

2.传递两个参数obj type,返回布尔值

判断obj的数据类型是否等于type,如果等于返回true,否则返回false kk.utils.type(obj, type)

return:

返回布尔值

特殊情况:

示例 描述
kk.utils.type() 返回undefined
kk.utils.type(null) 返回null
kk.utils.type(undefined) 返回undefined
kk.utils.type(NaN) 返回Number

判断变量是否为数组 isArray

示例代码

@section('判断变量是否为数组示例代码')
//判断变量是否为数组 
kk.utils.isArray([1,2,3]);//=> true
kk.utils.isArray('[1,2,3]');//=> false
@endsection

判断变量是否为数组 kk.utils.isArray(arr)

params:

名称 描述
arr Any 要判断的变量

return:

要判断的变量是数组返回true,否则返回false

判断变量是否为window对象 isWindow

示例代码

@section('判断变量是否为window对象示例代码')
//判断变量是否为window对象
kk.utils.isWindow(window);//=> true
@endsection

判断变量是否为window对象 kk.utils.isWindow(obj)

params:

名称 描述
obj Any 要判断的变量

return:

要判断的变量是window对象返回true,否则返回false

判断参数是否为对象 isObject

示例代码

@section('判断参数是否为对象示例代码')
//判断参数是否为对象 
kk.utils.isObject('obj');//=> false
kk.utils.isObject({});//=> true
@endsection

判断参数是否为对象 kk.utils.isObject(obj)

params:

名称 描述
obj Any 要判断的变量

return:

要判断的变量是对象返回true,否则返回false

判断变量是否为简单对象 isPlainObject

示例代码

@section('判断变量是否为简单对象示例代码')
//判断变量是否为简单对象 
kk.utils.isPlainObject({"obj": "KK sdk 参考手册"});//=> true
@endsection

判断变量是否为简单对象(即JSON格式对象) kk.utils.isPlainObject(obj)

params:

名称 描述
obj Any 要判断的变量

return:

要判断的变量是JSON格式对象返回true,否则返回false

判断参数是否为空 isEmpty

示例代码

@section('判断参数是否为空示例代码')
//判断参数是否为空 
kk.utils.isEmpty(null);//=> true
kk.utils.isEmpty(undefined);//=> true
kk.utils.isEmpty('');//=> true
kk.utils.isEmpty([]);//=> true
@endsection

判断参数是否为空 kk.utils.isEmpty(obj)

params:

名称 描述
obj Any 要判断的变量

return:

要判断的变量是空返回true,否则返回false

判断变量是否为函数 isFunction

示例代码

@section('判断变量是否为函数示例代码')
var bar = '';
function foo(){};

//判断变量是否为函数 
kk.utils.isFunction(bar);//=>false
kk.utils.isFunction(foo);//=>true
@endsection

判断变量是否为函数 kk.utils.isFunction(fn)

params:

名称 描述
fn Any 要判断的变量

return:

要判断的变量是函数返回true,否则返回false

扩展对象 extend

示例代码

@section('扩展对象示例代码')
var dest =  {a: 1};
var source1 = {
    a: 11,
    b: 22,
};
var source2 = {
    a: 111,
    b: 222,
    c: 333
};

//默认扩展
kk.utils.extend(dest, source1);
//dest = {a: 11, b: 22}

//不覆盖已有属性
kk.utils.extend(dest, source1, false);
//dest = {a: 1, b: 22}

//扩展多个属性来源,且不覆盖已有属性
kk.utils.extend(false, dest, source1, source2, false);
//dest = {a: 1, b: 22, c: 333}
@endsection

扩展对象 kk.utils.extend([deep], [dest], source, [source...], [ride])

params:

名称 描述
deep boolean, optional(false) 是否深度拷贝
dest object, optional 要扩展的对象,如果省略则扩展调用环境(context)
source object 要扩展的属性来源,可支持多个source
ride boolean, optional(true) 是否覆盖已有属性

callbacks:

返回扩展之后得到的对象

将对象转换为queryString toQueryString

示例代码

@section('转换对象示例代码')
var obj = {version: 'kk sdk 5.0', anthor: 'landray'};

//将对象转换为queryString
kk.utils.toQueryString(obj);
//返回字符串。=> 'version=kk%20sdk%205.0&anthor=landray'
@endsection

将对象中的key和value作为URI组件进行编码,返回转换后的query string。 kk.utils.toQueryString(obj)

params:

名称 描述
obj object 需要转换的对象

callbacks:

返回由key=value组成的string字符串,每个键值对由’&‘分隔