function UtilsWrapper() { } var utils = new UtilsWrapper(); /** * 请求展示浮窗的权限 *
* 运行环境: 无限制 *
* 兼容版本: Android 4.4 以上 * @param timeout 请求权限超时时间 单位是秒 * @return {boolean} true 代表请求权限成功,false代表失败 */ UtilsWrapper.prototype.requestFloatViewPermission = function (timeout) { if (utilsWrapper == null) { return null; } return utilsWrapper.requestFloatViewPermission(timeout); }; /** * 展示浮窗 * @param params js的map对象,包含的 * var map = {"path":"main.html","tag":"test"}; 类似这样的参数 *
* 参数解析: * tag:字符串 悬浮窗唯一定位的标示 * path:字符串 IEC 中的布局文件 * title:字符串 悬浮窗标题 * titleBg:字符串 悬浮窗背景,16进制,例如#888888,或者#88000000 * x:整型 悬浮窗起始X坐标 * y:整型 悬浮窗起始Y坐标 * w:整型 悬浮窗起始宽度 * h:整型 悬浮窗起始高度 * @return {boolean} true 代表请求权限成功,false代表失败 */ UtilsWrapper.prototype.showFloatView = function (params) { if (utilsWrapper == null || params == null) { return false; } if (String == (typeof params)) { return utilsWrapper.showFloatView(params); } else { return utilsWrapper.showFloatView(JSON.stringify(params)); } }; /** * 关闭浮窗 * @param tag showFloatView 使用的tag参数,对悬浮窗唯一定位的 * @return {boolean} true 成功,false代表失败 */ UtilsWrapper.prototype.closeFloatView = function (tag) { if (utilsWrapper == null) { return null; } return utilsWrapper.closeFloatView(tag); }; /** * 折叠日志悬浮窗,只保留标题 * 适配EC 9.32.0+ * @return {boolean} true 成功,false代表失败 */ UtilsWrapper.prototype.collapseLogView = function () { if (utilsWrapper == null) { return null; } return utilsWrapper.collapseLogView(); }; /** * 展开日志悬浮窗 * 适配EC 9.32.0+ * @return {boolean} true 成功,false代表失败 */ UtilsWrapper.prototype.expandLogView = function () { if (utilsWrapper == null) { return null; } return utilsWrapper.expandLogView(); }; /** * 关闭所有悬浮窗,但不包含日志悬浮窗 * @return {boolean} true 成功,false代表失败 */ UtilsWrapper.prototype.closeAllFloatView = function () { if (utilsWrapper == null) { return null; } return utilsWrapper.closeAllFloatView(); }; /** * 检查是否含有浮窗权限 *
* 运行环境: 无限制 *
* 兼容版本: Android 4.4 以上 * @return {boolean} true 有权限,false 代表无权限 */ UtilsWrapper.prototype.hasFloatViewPermission = function () { if (utilsWrapper == null) { return null; } return utilsWrapper.hasFloatViewPermission(); }; /** * 设置日志窗口大小 *
* 运行环境: 无限制 *
* 兼容版本: Android 4.4 以上 * @param w 宽度 * @param h 高度 * @param textSize 日志的字体大小 * @param backgroundColor 背景颜色,例如#336699 */ UtilsWrapper.prototype.setLogViewSize = function (w, h, textSize, backgroundColor) { if (utilsWrapper == null) { return null; } utilsWrapper.setLogViewSize(w, h, textSize, backgroundColor); }; /** * 设置日志顶部固定窗口属性 * 适合EC 6.17.0+ * @param show 是否展示 * @param h 高度 * @param textSize 日志的字体大小 * @param textColor 日志的字体颜色,例如#336699 * @param backgroundColor 背景颜色,例如#336699 */ UtilsWrapper.prototype.setLogFixedViewEx = function (p) { if (utilsWrapper == null) { return null; } return utilsWrapper.setLogFixedViewEx(p); }; /** * 设置日志顶部固定窗口属性 * 适合EC 6.17.0+ * @param msg 消息 * @return {boolean} true代表成功 false代表失败 */ UtilsWrapper.prototype.setFixedViewText = function (p) { if (utilsWrapper == null) { return null; } return utilsWrapper.setFixedViewText(p); }; /** * * @param p * @return {boolean} */ UtilsWrapper.prototype.setLogViewSizeEx = function (p) { if (utilsWrapper == null) { return null; } return utilsWrapper.setLogViewSizeEx(p); }; /** * * @param p * @return {boolean} */ UtilsWrapper.prototype.setCtrlViewSizeEx = function (p) { if (utilsWrapper == null) { return null; } return utilsWrapper.setCtrlViewSizeEx(p); }; /** * 展示日志浮窗 *
* 运行环境: 无限制 *
* 兼容版本: Android 4.4 以上 * @return {boolean} */ UtilsWrapper.prototype.showLogWindow = function () { if (utilsWrapper == null) { return null; } return utilsWrapper.showLogWindow(); }; UtilsWrapper.prototype.showCtrlWindow = function () { if (utilsWrapper == null) { return null; } return utilsWrapper.showCtrlWindow(); }; /** * * @return {boolean} */ UtilsWrapper.prototype.hideCtrlWindow = function () { if (utilsWrapper == null) { return null; } return utilsWrapper.hideCtrlWindow(); }; /** * 展示日志到浮窗中 *
* 运行环境: 无限制 *
* 兼容版本: Android 4.4 以上 * @param log 日志 * @param color 颜色 * @param size 大小 */ UtilsWrapper.prototype.setLogText = function (log, color, size) { if (utilsWrapper == null) { return null; } utilsWrapper.setLogText(log, color, size); }; /** * 隐藏日志浮窗 *
* 运行环境: 无限制 *
* 兼容版本: Android 4.4 以上 */ UtilsWrapper.prototype.hideLogWindow = function () { if (utilsWrapper == null) { return null; } utilsWrapper.hideLogWindow(); }; /** * 显示消息 *
* 运行环境: 无限制 *
* 兼容版本: Android 4.4 以上 * * @param msg 消息内容 */ UtilsWrapper.prototype.toast = function (msg) { if (utilsWrapper == null) { return null; } utilsWrapper.toast(msg); }; /** * 打开APP *
* 运行环境: 无限制 *
* 兼容版本: Android 4.4 以上 * * @param packageName 程序的包名 * @return {boolean} true 代表成功,false 代表失败 */ UtilsWrapper.prototype.openApp = function (packageName) { if (utilsWrapper == null) { return null; } return utilsWrapper.openApp(packageName); }; /** * 拼接打开APP命令 * * @param packageName 程序的包名 * @return {null|string} 命令字符串 */ UtilsWrapper.prototype.getStartAppCmd = function (packageName) { if (utilsWrapper == null) { return null; } return utilsWrapper.getStartAppCmd(packageName); }; /** * 拼接启动activity命令,通过map参数 * @param map 例如{"action":""},key的固定只有 * action, * uri,pkg,className,flag,其他的都是参数了 * @return {null|string} 命令字符串 */ UtilsWrapper.prototype.getStartActivityCmd = function (map) { if (utilsWrapper == null) { return null; } map = JSON.stringify(map); return utilsWrapper.getStartActivityCmd(map); }; /** * 打开一个activity,通过map参数 * @param map 例如{"action":""},key的固定只有 * action, * uri,pkg,className,flag,其他的都是参数了 * @return {boolean} true 代表成功,false 代表失败 */ UtilsWrapper.prototype.openActivity = function (map) { if (utilsWrapper == null) { return null; } map = JSON.stringify(map); return utilsWrapper.openActivity(map); }; /** * 通过Action打开某个界面 * @param action action动作,例如 android.settings.ACCESSIBILITY_SETTINGS = 辅助功能, * 如果改方法不满足要求,可以直接使用intent进行打开: * 常用的action有: * android.settings.ACCESSIBILITY_SETTINGS //辅助功能 * android.settings.ADD_ACCOUNT_SETTINGS //添加账户 * android.settings.AIRPLANE_MODE_SETTINGS //系统设置首页 * android.settings.APN_SETTINGS //APN设置 * android.settings.APPLICATION_SETTINGS //应用管理 * android.settings.BATTERY_SAVER_SETTINGS //节电助手 * android.settings.BLUETOOTH_SETTINGS //蓝牙 * android.settings.CAPTIONING_SETTINGS //字幕 * android.settings.CAST_SETTINGS //无线显示 * android.settings.DATA_ROAMING_SETTINGS //移动网络 * android.settings.DATE_SETTINGS //日期和时间设置 * android.settings.DEVICE_INFO_SETTINGS //关于手机 * android.settings.DISPLAY_SETTINGS //显示设置 * android.settings.DREAM_SETTINGS //互动屏保设置 * android.settings.HARD_KEYBOARD_SETTINGS //实体键盘 * android.settings.HOME_SETTINGS //应用权限,默认应用设置,特殊权限 * android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS //忽略电池优化设置 * android.settings.INPUT_METHOD_SETTINGS //可用虚拟键盘设置 * android.settings.INPUT_METHOD_SUBTYPE_SETTINGS //安卓键盘语言设置(AOSP) * android.settings.INTERNAL_STORAGE_SETTINGS //内存和存储 * android.settings.LOCALE_SETTINGS //语言偏好设置 * android.settings.LOCATION_SOURCE_SETTINGS //定位服务设置 * android.settings.MANAGE_ALL_APPLICATIONS_SETTINGS //所有应用 * android.settings.MANAGE_APPLICATIONS_SETTINGS //应用管理 * android.settings.MANAGE_DEFAULT_APPS_SETTINGS //与ACTION_HOME_SETTINGS相同 * android.settings.action.MANAGE_OVERLAY_PERMISSION //在其他应用上层显示,悬浮窗 * android.settings.MANAGE_UNKNOWN_APP_SOURCES //安装未知应用 安卓8.0 * android.settings.action.MANAGE_WRITE_SETTINGS //可修改系统设置 权限 * android.settings.MEMORY_CARD_SETTINGS //内存与存储 * android.settings.NETWORK_OPERATOR_SETTINGS //可用网络选择 * android.settings.NFCSHARING_SETTINGS //NFC设置 * android.settings.NFC_SETTINGS //网络中的 更多设置 * android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS //通知权限设置 * android.settings.NOTIFICATION_POLICY_ACCESS_SETTINGS //勿扰权限设置 * android.settings.ACTION_PRINT_SETTINGS //打印服务设置 * android.settings.PRIVACY_SETTINGS //备份和重置 * android.settings.SECURITY_SETTINGS //安全设置 * android.settings.SHOW_REGULATORY_INFO //监管信息 * android.settings.SOUND_SETTINGS //声音设置 * android.settings.SYNC_SETTINGS //添加账户设置 * android.settings.USAGE_ACCESS_SETTINGS //有权查看使用情况的应用 * android.settings.USER_DICTIONARY_SETTINGS //个人词典 * android.settings.VOICE_INPUT_SETTINGS //辅助应用和语音输入 * android.settings.VPN_SETTINGS //VPN设置 * android.settings.VR_LISTENER_SETTINGS //VR助手 * android.settings.WEBVIEW_SETTINGS //选择webview * android.settings.WIFI_IP_SETTINGS //高级WLAN设置 * android.settings.WIFI_SETTINGS //选择WIFI,连接WIFI * com.android.settings.Settings$DevelopmentSettingsActivity * @return {null|boolean} */ UtilsWrapper.prototype.openIntentAction = function (action) { if (utilsWrapper == null) { return false; } importClass(android.content.Intent); var intent = new Intent(); intent.setAction(action); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); try { return context.startActivity(intent); } catch (e) { loge(e) return false; } }; /** * 打开APP,通过应用名称 *
* 运行环境: 无限制 *
* 兼容版本: Android 4.4 以上 * * @param appName 程序名称,比如今日头条 * @return {boolean} true 代表成功,false 代表失败 */ UtilsWrapper.prototype.openAppByName = function (appName) { if (utilsWrapper == null) { return null; } return utilsWrapper.openAppByName(appName); }; /** * App是否已经安装 *
* 运行环境: 无限制 *
* 兼容版本: Android 4.4 以上 * * @param packageName 应用程序的包名 * @return {boolean} true 代表已经安装,false代表未安装 */ UtilsWrapper.prototype.isAppExist = function (packageName) { if (utilsWrapper == null) { return null; } return utilsWrapper.isAppExist(packageName); }; /** * 取得已安装的程序的版本整型标示 *
* 运行环境: 无限制 *
* 兼容版本: Android 4.4 以上 * * @param packageName 应用程序的包名 * @return {number} 返回版本代码 */ UtilsWrapper.prototype.getAppVersionCode = function (packageName) { if (utilsWrapper == null) { return null; } return utilsWrapper.getAppVersionCode(packageName); }; /** * 取得已安装的程序的版本字符串标示 *
* 运行环境: 无限制 *
* 兼容版本: Android 4.4 以上 * * @param packageName 应用程序的包名 * @return {null|string} 例如 1.0.0 */ UtilsWrapper.prototype.getAppVersionName = function (packageName) { if (utilsWrapper == null) { return null; } var x = utilsWrapper.getAppVersionName(packageName); return javaString2string(x); }; /** * 取得App文件的包名 *
* 运行环境: 无限制 *
* 兼容版本: Android 4.4 以上 * * @param filePath 文件路径 * @return {null|string} 例如com.tencent.mm */ UtilsWrapper.prototype.getApkPkgName = function (filePath) { if (utilsWrapper == null) { return null; } var x = utilsWrapper.getApkPkgName(filePath); return javaString2string(x); }; /** * 将图片插入到相册中,此方法会立刻更新相册数据 *
* 运行环境: 无限制 *
* 兼容版本: Android 4.4 以上 * * @param path 图片路径 */ UtilsWrapper.prototype.insertImageToAlbum = function (path) { if (utilsWrapper == null) { return null; } utilsWrapper.insertImageToAlbum(path); }; /** * 将视频插入到相册中,此方法会立刻更新相册数据 *
* 运行环境: 无限制 *
* 兼容版本: Android 4.4 以上 * * @param path 视频路径 */ UtilsWrapper.prototype.insertVideoToAlbum = function (path) { if (utilsWrapper == null) { return null; } utilsWrapper.insertVideoToAlbum(path); }; /** * 文件的MD5 *
* 运行环境: 无限制 *
* 兼容版本: Android 4.4 以上 * * @param filePath 文件路径 * @return {null|string} 文件MD5字符串或者null */ UtilsWrapper.prototype.fileMd5 = function (filePath) { if (utilsWrapper == null) { return null; } var x = utilsWrapper.fileMd5(filePath); return javaString2string(x); }; /** * 数据计算出来的MD5 *
* 运行环境: 无限制 *
* 兼容版本: Android 4.4 以上 * * @param data 数据 * @return {null|string} 数据MD5字符串或者null */ UtilsWrapper.prototype.dataMd5 = function (data) { if (utilsWrapper == null) { return null; } var x = utilsWrapper.dataMd5(data); return javaString2string(x); }; /** * 读取JSON中的整型数据 *
* 运行环境: 无限制 *
* 兼容版本: Android 4.4 以上 * * @param jsonObject JSON对象 * @param key 配置项目 * @return {number} JSON中key对应的整型数据 */ UtilsWrapper.prototype.readJSONInt = function (jsonObject, key) { if (utilsWrapper == null) { return null; } return utilsWrapper.readJSONInt(jsonObject, key); }; /** * 读取JSON中的字符串数据 *
* 运行环境: 无限制 *
* 兼容版本: Android 4.4 以上 * * @param jsonObject JSON对象 * @param key 配置项目 * @return {null|string} JSON中key对应的字符串数据 */ UtilsWrapper.prototype.readJSONString = function (jsonObject, key) { if (utilsWrapper == null) { return null; } var x = utilsWrapper.readJSONString(jsonObject, key); return javaString2string(x); }; /** * 判断一个对象为空 *
* 运行环境: 无限制 *
* 兼容版本: Android 4.4 以上 * * @param obj 对象 * @return {boolean} true或者false */ UtilsWrapper.prototype.isObjectNull = function (obj) { if (utilsWrapper == null) { return null; } return utilsWrapper.isObjectNull(obj); }; /** * 判断一个对象不为空 *
* 运行环境: 无限制 *
* 兼容版本: Android 4.4 以上 * * @param obj 对象 * @return {boolean} true或者false */ UtilsWrapper.prototype.isObjectNotNull = function (obj) { if (utilsWrapper == null) { return null; } return utilsWrapper.isObjectNotNull(obj); }; /** * 判断布尔型对象是否为真 *
* 运行环境: 无限制 *
* 兼容版本: Android 4.4 以上 * * @param r 布尔型对象 * @return {boolean} true 或者 false */ UtilsWrapper.prototype.isTrue = function (r) { if (utilsWrapper == null) { return null; } return utilsWrapper.isTrue(r); }; /** * 取得比例,例如10参数,就是返回10%的比例,如果是true,说明随机比例正确,否则不正确 *
* 运行环境: 无限制 *
* 兼容版本: Android 4.4 以上 * * @param ratio 浮点型 1-100 * @return {boolean} true或者false */ UtilsWrapper.prototype.getRatio = function (ratio) { if (utilsWrapper == null) { return null; } return utilsWrapper.getRatio(ratio); }; /** * 随机整型数据,参数是整型长度 * * @param length 位数,要随机产生多少位的整型数据 * @return {number} 返回指定长度的整型数据 */ UtilsWrapper.prototype.randomInt = function (length) { if (utilsWrapper == null) { return null; } return utilsWrapper.randomInt(length); }; /** * 取得随机的数字和字母,参数是长度 *
* 运行环境: 无限制 *
* 兼容版本: Android 4.4 以上 * * @param length 长度 * @return {null|string} 字符串数字混合 */ UtilsWrapper.prototype.randomCharNumber = function (length) { if (utilsWrapper == null) { return null; } var x = utilsWrapper.randomCharNumber(length); return javaString2string(x); }; /** * 取得某个范围的随机值 *
* 运行环境: 无限制 *
* 兼容版本: Android 4.4 以上 * * @param min 最小值 * @param max 最大值 * @return {number} 在min和max中间的值, 包含最大和最小值 */ UtilsWrapper.prototype.getRangeInt = function (min, max) { if (utilsWrapper == null) { return null; } return utilsWrapper.getRangeInt(min, max); }; /** * 设置剪贴板文本 * @param text 文本 * @return {boolean} */ UtilsWrapper.prototype.setClipboardText = function (text) { if (utilsWrapper == null) { return null; } return utilsWrapper.setClipboardText(text); }; /** * 读取剪贴板文本 * @return {null|string} */ UtilsWrapper.prototype.getClipboardText = function () { if (utilsWrapper == null) { return null; } return javaString2string(utilsWrapper.getClipboardText()); }; /** * 播放mp3音乐 * @param path 文件路径 例如 /sdcard/a.mp3 * @param loop 是否循环播放 true代表是 * @return {boolean} true 代表成功 false 代表失败 */ UtilsWrapper.prototype.playMp3 = function (path, loop) { if (utilsWrapper == null) { return null; } return utilsWrapper.playMp3(path, loop, false); }; /** * 播放mp3音乐,等待结束 * 适配EC 10.3.0+ * @param path 文件路径 例如 /sdcard/a.mp3 * @param loop 是否循环播放 true代表是 * @return {boolean} true 代表成功 false 代表失败 */ UtilsWrapper.prototype.playMp3WaitEnd = function (path, loop) { if (utilsWrapper == null) { return null; } return utilsWrapper.playMp3(path, loop, true); }; /** * 停止播放mp3音乐 * @return {boolean} true 代表成功 false 代表失败 */ UtilsWrapper.prototype.stopMp3 = function () { if (utilsWrapper == null) { return null; } return utilsWrapper.stopMp3(); }; /** * 生成一个二维码 * @param content 二维码字符串内容 * @param width 图像宽度 * @param height 图像高度 * @param logo 图像中心的logo,非必填项,Bitmap 对象,文件转Bitmap请看image模块 * @return {null|Bitmap} Android的Bitmap对象,保存到文件请看image模块 */ UtilsWrapper.prototype.createQRCode = function (content, width, height, logo) { if (utilsWrapper == null) { return null; } return utilsWrapper.createQRCode(content, width, height, logo); }; /** * 解析一个二维码 * @param src 图像 Bitmap 对象,文件转Bitmap请看image模块 * @return {null|string} 解析后的字符串 */ UtilsWrapper.prototype.decodeQRCode = function (src) { if (utilsWrapper == null) { return null; } return utilsWrapper.decodeQRCode(src); }; /** * 将zip文件解压到一个文件夹中 * @param zipFile 目标zip文件的路径 * @param passwd 目标ip文件密码 * @param destDir 要解压到的目标文件夹 * @return {boolean} true 代表成功 false代表失败 */ UtilsWrapper.prototype.unzip = function (zipFile, passwd, destDir) { if (utilsWrapper == null) { return null; } return utilsWrapper.unzip(zipFile, passwd, destDir, ""); }; /** * 解压文件 * 将zip文件解压到一个文件夹中 * 适合EC 10.0.0+ * @param zipFile 目标zip文件的路径 * @param passwd 目标ip文件密码 * @param destDir 要解压到的目标文件夹 * @param fileNameEncode 文件名的编码,Windows压缩的写GBK,其他平台都是UTF-8 * @return {boolean} true 代表成功 false代表失败 */ UtilsWrapper.prototype.unzipWithEncode = function (zipFile, passwd, destDir, fileNameEncode) { if (utilsWrapper == null) { return null; } return utilsWrapper.unzip(zipFile, passwd, destDir, fileNameEncode); }; /** * 将多个文件压缩成一个zip文件 * @param zipFile 目标zip文件的路径 * @param passwd 目标ip文件密码 * @param files 要压缩的文件或者文件夹,文件数组例如: ["/sdcard/a.txt","/sdcard/bb/"] * @return {boolean} true 代表成功 false代表失败 */ UtilsWrapper.prototype.zip = function (zipFile, passwd, files) { if (utilsWrapper == null) { return null; } return utilsWrapper.zip(zipFile, passwd, JSON.stringify(files)); }; /** * 从zip文件中读取数据 * @param zipFile zip文件的路径 * @param passwd zip文件密码 * @param filePathInZip 文件在zip中的路径,例如 a/b.txt * @return {null|string} 解析后的字符串 */ UtilsWrapper.prototype.readFileInZip = function (zipFile, passwd, filePathInZip) { if (utilsWrapper == null) { return null; } return utilsWrapper.readFileInZip(zipFile, passwd, filePathInZip); }; function EncodeDecodeWrapper() { } var encodeDecoder = new EncodeDecodeWrapper(); /** * 获取上一次加解密的错误信息 * @return {null|string} null代表无错误 */ EncodeDecodeWrapper.prototype.getErrorMsg = function () { return utilsWrapper.getLastEncDeErrorMsg(); } /** * AES加密 * @param data 数据字符串 * @param password 密码,至少8个字符 * @return {null|string} 加密后的base64字符串 */ EncodeDecodeWrapper.prototype.aesEncrypt = function (data, password) { return utilsWrapper.aesEncrypt(data, password); } /** * AES解密 * @param data 加密后的base64字符串 * @param password 密码,至少8个字符 * @return {string} 解密后的字符串 */ EncodeDecodeWrapper.prototype.aesDecrypt = function (data, password) { return utilsWrapper.aesDecrypt(data, password); } /** * DES加密 * @param data 数据字符串 * @param password 密码,至少8个字符 * @return {null|string} 加密后的base64字符串 */ EncodeDecodeWrapper.prototype.desEncrypt = function (data, password) { return utilsWrapper.desEncrypt(data, password); } /** * DES解密 * @param data 加密后的base64字符串 * @param password 密码,至少8个字符 * @return {string} 解密后的字符串 */ EncodeDecodeWrapper.prototype.desDecrypt = function (data, password) { return utilsWrapper.desDecrypt(data, password); } /** * 3DES加密,算法是 DESede/CBC/PKCS5Padding * @param data 数据字符串 * @param password 密码 * @return {null|string} 加密后的base64字符串 */ EncodeDecodeWrapper.prototype.des3Encrypt = function (data, password) { return utilsWrapper.des3Encrypt(data, password); } /** * 3DES解密,算法是 DESede/CBC/PKCS5Padding * @param data 加密后的base64字符串 * @param password 密码 * @return {string} 解密后的字符串 */ EncodeDecodeWrapper.prototype.des3Decrypt = function (data, password) { return utilsWrapper.des3Decrypt(data, password); } /** * RSA 私钥加密,算法是RSA/ECB/PKCS1Padding * @param data 数据字符串 * @param password 私钥 * @return {null|string} 加密后的base64字符串 */ EncodeDecodeWrapper.prototype.rsaEncryptByPrivate = function (data, password) { return utilsWrapper.rsaEncryptByPrivate(data, password); } /** * RSA 私钥解密,算法是RSA/ECB/PKCS1Padding * @param data 加密后的base64字符串 * @param password 私钥 * @return {null|string} 解密后的字符串 */ EncodeDecodeWrapper.prototype.rsaDecryptByPrivate = function (data, password) { return utils.rsaDecryptByPrivate(data, password); } /** * RSA 公钥加密,算法是RSA/ECB/PKCS1Padding * @param data 数据字符串 * @param password 私钥 * @return {string} 加密后的base64字符串 */ EncodeDecodeWrapper.prototype.rsaEncryptByPublic = function (data, password) { return utilsWrapper.rsaEncryptByPublic(data, password); } /** * RSA 公钥解密,算法是RSA/ECB/PKCS1Padding * @param data 加密后的base64字符串 * @param password 私钥 * @return {null|string} 解密后的字符串 */ EncodeDecodeWrapper.prototype.rsaDecryptByPublic = function (data, password) { return utilsWrapper.rsaDecryptByPublic(data, password); } function FloatyWrapper() { } var floaty = new FloatyWrapper(); FloatyWrapper.prototype.requestFloatViewPermission = function (timeout) { return utils.requestFloatViewPermission(timeout); } FloatyWrapper.prototype.hasFloatViewPermission = function () { return utils.hasFloatViewPermission(); } /** * 显示一个XML悬浮窗 * @param tag 悬浮窗的标签 * @param xml xml路径或者内容 * @param x 起始X位置 * @param y 起始Y位置 * @return {null|View} android的View对象 */ FloatyWrapper.prototype.showFloatXml = function (tag, xml, x, y) { return utilsWrapper.showFloatXml_floaty(tag, xml, x, y); } /** * 显示一个View悬浮窗 * @param tag 悬浮窗的标签 * @param view android的View对象 * @param x 起始X位置 * @param y 起始Y位置 * @return {null|View} android的View对象 */ FloatyWrapper.prototype.showFloatView = function (tag, view, x, y) { return utilsWrapper.showFloatView_floaty(tag, view, x, y); } /** * 设置悬浮窗X坐标 * @param tag 悬浮窗的标签 * @param x X位置 * @return {bool} true成功 false 失败 */ FloatyWrapper.prototype.updateX = function (tag, x) { return utilsWrapper.updateX_floaty(tag, x); } /** * 设置悬浮窗Y坐标 * @param tag 悬浮窗的标签 * @param y Y位置 * @return {boolean} true成功 false 失败 */ FloatyWrapper.prototype.updateY = function (tag, y) { return utilsWrapper.updateY_floaty(tag, y); } /** * 获取浮窗位置X坐标 * @param tag 悬浮窗的标签 * @return {number} -1 代表失败 其他都是坐标 */ FloatyWrapper.prototype.getX = function (tag) { return utilsWrapper.getX_floaty(tag); } /** * 获取浮窗位置Y坐标 * @param tag 悬浮窗的标签 * @return {number} -1 代表失败 其他都是坐标 */ FloatyWrapper.prototype.getY = function (tag) { return utilsWrapper.getY_floaty(tag); } /** * 获取浮窗宽度 * @param tag 悬浮窗的标签 * @return {number} -1 代表失败 其他都是坐标 */ FloatyWrapper.prototype.getWidth = function (tag) { return utilsWrapper.getWidth_floaty(tag); } /** * 获取浮窗高度 * @param tag 悬浮窗的标签 * @return {number} -1 代表失败 其他都是坐标 */ FloatyWrapper.prototype.getHeight = function (tag) { return utilsWrapper.getHeight_floaty(tag); } /** * 设置悬浮窗大小 * @param tag 悬浮窗的标签 * @param w 宽度 * @param h 高度 * @return {boolean} true成功 false 失败 */ FloatyWrapper.prototype.updateSize = function (tag, w, h) { return utilsWrapper.updateSize_floaty(tag, w, h); } /** * 关闭悬浮窗 * @param tag 悬浮窗的标签 * @return {boolean} true成功 false 失败 */ FloatyWrapper.prototype.close = function (tag) { return utilsWrapper.closeFloatView_floaty(tag); } /** * 设置悬浮窗聚焦 * @param focusable 是否聚焦 * @return {boolean} true成功 false 失败 */ FloatyWrapper.prototype.focusable = function (tag, focusable) { return utilsWrapper.focusable_floaty(tag, focusable); } /** * 设置悬浮窗可触摸 * @param touchable 是否可触摸 * @return {boolean} true成功 false 失败 */ FloatyWrapper.prototype.touchable = function (tag, touchable) { return utilsWrapper.touchable_floaty(tag, touchable); } /** * * @return {boolean} */ FloatyWrapper.prototype.showLogWindow = function () { return utils.showLogWindow(); } /** * * @return {boolean} */ FloatyWrapper.prototype.closeLogWindow = function () { return utils.hideLogWindow(); } /** * * @return {boolean} */ FloatyWrapper.prototype.setLogViewSizeEx = function (p) { return utils.setLogViewSizeEx(p); } /** * 数据存储类 */ function StoragesWrapper() { } var storages = new StoragesWrapper(); /** * 创建存储对象 * @param name 存储对象名称 * @return {StorageApiWrapper} 存储对象实例 */ StoragesWrapper.prototype.create = function (name) { return new StorageApiWrapper(name); } function StorageApiWrapper(name) { this.name = name; } /** * 清空存储 * @return {boolean} true成功 false 失败 */ StorageApiWrapper.prototype.clear = function () { return storageWrapper.clear(this.name); } /** * 是否包含某个key * @param key 键 * @return {boolean} true成功 false 失败 */ StorageApiWrapper.prototype.contains = function (key) { return storageWrapper.contains(this.name, key); } /** * 移出key对应的值 * @param key 键 * @return {boolean} true成功 false 失败 */ StorageApiWrapper.prototype.remove = function (key) { return storageWrapper.remove(this.name, key); } /** * 存储字符串 * @param key 键 * @param value 字符串 * @return {boolean} true成功 false 失败 */ StorageApiWrapper.prototype.putString = function (key, value) { return storageWrapper.putString(this.name, key, value); } /** * 存储整型数据 * @param key 键 * @param value 整型数据 * @return {boolean} true成功 false 失败 */ StorageApiWrapper.prototype.putInt = function (key, value) { return storageWrapper.putInt(this.name, key, value); } /** * 存储布尔型数据 * @param key 键 * @param value 布尔型数据 * @return {bool} true成功 false 失败 */ StorageApiWrapper.prototype.putBoolean = function (key, value) { return storageWrapper.putBoolean(this.name, key, value); } /** * 存储浮点型数据 * @param key 键 * @param value 浮点型数据 * @return {boolean} true成功 false 失败 */ StorageApiWrapper.prototype.putFloat = function (key, value) { return storageWrapper.putFloat(this.name, key, value); } /** * 存储并加密字符串数据 * @param key 键 * @param value 字符串数据 * @return {boolean} true成功 false 失败 */ StorageApiWrapper.prototype.putEncrypt = function (key, value) { return storageWrapper.putEncrypt(this.name, key, value); } /** * 获取解密字符串数据 * @param key 键 * @return {null|string} 解密后的字符串 */ StorageApiWrapper.prototype.getDecryptString = function (key) { return storageWrapper.getDecryptString(this.name, key); } /** * 获取字符串数据 * @param key 键 * @return {null|string} 字符串 */ StorageApiWrapper.prototype.getString = function (key, defaultValue) { return storageWrapper.getString(this.name, key, defaultValue); } /** * 获取整型数据 * @param key 键 * @return {null|string} 整型 */ StorageApiWrapper.prototype.getInt = function (key, defaultValue) { return storageWrapper.getInt(this.name, key, defaultValue); } /** * 获取布尔型数据 * @param key 键 * @return {null|string} 布尔型 */ StorageApiWrapper.prototype.getBoolean = function (key, defaultValue) { return storageWrapper.getBoolean(this.name, key, defaultValue); } /** * 获取浮点型数据 * @param key 键 * @return {string} 浮点型 */ StorageApiWrapper.prototype.getFloat = function (key, defaultValue) { return storageWrapper.getFloat(this.name, key, defaultValue); } /** * 获取所有的key * @return {null|string} JSON字符串 */ StorageApiWrapper.prototype.keys = function () { return storageWrapper.keys(this.name); } /** * 获取所有的key和值 * @return {null|string} JSON字符串 */ StorageApiWrapper.prototype.all = function () { return storageWrapper.all(this.name); }