/**
* 该模块是和原生部分有强交互的行为,需要了解一定的android ios开发调用此模块的API<br>
* 注:微协同不支持此接口
* <strong>
* 页面需要导入的文件
* <ul>
* <li>cmp-app.js</li>
* </ul>
* </strong>
* @module App
* @subtitle 应用模块
*/
/**
* app
* @namespace cmp
* @class app
*/
/**
* 打开第三方app
* @namespace cmp.app
* @method openApp
* @param {String} url 打开的地址
* @example
* ```
* <script>
* cmp.app.openApp(url);
* </script>
* ```
*/
/**
* 打开原生UI
* @namespace cmp.app
* @method openNativeUI
* @example
* ```
* <script>
* cmp.app.openNativeUI({
* className:"",
* JID:"",
* data:"",
* success:function(){},
* error:function(){}
* });
* </script>
* ```
*/
/**
* 下载应用包
* @namespace cmp.app
* @method downloadApp
* @example
* ```
* <script>
* cmp.app.downloadApp({
* url: "",
* title: "",
* extData: null,
* progress: function () {
* },
* success: function () {
* },
* error: null
* });
* </script>
* ```
*/
/**
* 获取应用下载列表
* @namespace cmp.app
* @method getDownloadAppList
* @example
* ```
* <script>
* cmp.app.getDownloadAppList({
* url: "",
* success: function () {
* },
* error: null
* });
* </script>
* ```
*/
/**
* 加载指定应用
* @namespace cmp.app
* @method loadApp
* @param {Object} options 配置参数
* @param {Sting} options.appId 应用id
* @param {String} options.bundle_identifier 唯一id
* @param {String} options.bundle_name 应用名称
* @param {String} options.team 所属组
* @param {String} options.version 引用版本号
* @param {String} options.appType 应用类型 default(v5、m3标准应用)
* @param {String} options.entry 用于原生app的调用、h5的url地址
* @param {String} options.downloadUrl 原生app下载地址
* @param {String} options.parameters 打开原生应用、h5url地址的参数
* @param {String} options.iOSStatusBarStyle ios状态栏颜色0=黑色 1=白色
* @param {Function} options.success 成功回调
* @param {Function} options.error 失败回调
* @example
* ```
* <script>
* cmp.app.loadApp({
* appId: "xxxx",
* bundle_identifier: "xaxaxa",
* bundle_name: "协同",
* team: "f1",
* version: "1.0",
* appType: "default",
* entry: "http://xxxxx",
* downloadUrl: "http://xxxxx",
* parameters: "{xxx:'xxxx'}",
* iOSStatusBarStyle: "1",
* success: function () {
* },
* error: function(){}
* });
* </script>
* ```
*/
/**
* 删除指定应用
* @namespace cmp.app
* @method deleteApp
* @param {Object} options 配置参数
* @param {Sting} options.appId 应用id
* @param {String} options.bundle_identifier 唯一id
* @param {String} options.bundle_name 应用名称
* @param {String} options.team 所属组
* @param {String} options.version 引用版本号
* @param {Function} options.success 成功回调
* @param {Function} options.error 失败回调
* @example
* ```
* <script>
* cmp.app.deleteApp({
* appId: "xxxx",
* bundle_identifier: "xaxaxa",
* bundle_name: "协同",
* team: "f1",
* version: "1.0",
* success: function () {
* },
* error: function(){}
* });
* </script>
* ```
*/
/**
* 获取js api
* @namespace cmp.app
* @method getJSAPIUrl
* @param {Object} options 配置参数
* @param {Sting} options.appId 应用id
* @param {String} options.serverVersion 服务器版本号
* @param {String} options.serverIdentifier 服务器的唯一标识
* @param {String} options.ownerId 用户id
* @param {Function} options.success 成功回调
* @param {Function} options.error 失败回调
* @example
* ```
* <script>
* cmp.app.getJSAPIUrl({
* appId: "xxxx",
* serverVersion: "xaxaxa",
* serverIdentifier: "xxx",
* ownerId: "xxxx",
* success: function () {
* },
* error: function(){}
* });
* </script>
* ```
*/
/**
* 获取预置应用Md5码
* @namespace cmp.app
* @method getPresetAppsMd5
* @example
* ```
* <script>
* cmp.app.getPresetAppsMd5({
* success: function (result) {
* result = {"cmp":"11111", "m3_apps_login":"", "m3_apps_commons":""}
* },
* error: null
* });
* </script>
* ```
*/
/**
* 获取应用下载列表版本号
* @namespace cmp.app
* @method getAppVersionList
* @example
* ```
* <script>
* cmp.app.getAppVersionList({
* url: "",
* success: function () {
* },
* error: null
* });
* </script>
* ```
*/
/**
* 获取App入口
* @namespace cmp.app
* @method getAppEntryUrl
* @param {Object} options 配置参数
* @param {Sting} options.appId 应用id
* @param {String} options.version 引用版本号
* @param {Function} options.success 成功回调
* @param {Function} options.error 失败回调
* @example
* ```
* <script>
* cmp.app.getAppEntryUrl({
* appId: "xxxx",
* version: "1.0",
* success: function () {
* },
* error: function(){}
* });
* </script>
* ```
*/
/**
* 获取App信息
* @namespace cmp.app
* @method getAppInfo
* @param {Object} options 配置参数
* @param {Sting} options.appId 应用id
* @param {String} options.version 引用版本号
* @param {Function} options.success 成功回调
* @param {Function} options.error 失败回调
* @example
* ```
* <script>
* cmp.app.getAppInfo({
* appId: "xxxx",
* version: "1.0",
* success: function () {
* },
* error: function(){}
* });
* </script>
* ```
*/
/**
* 获取本地资源路径
* @namespace cmp.app
* @method getLocalResourceUrl
* @param {Object} options 配置参数
* @param {Sting} options.url 应用url
* @param {Function} options.success 成功回调
* @param {Function} options.error 失败回调
* @example
* ```
* <script>
* cmp.app.getLocalResourceUrl({
* url: "xxxx",
* success: function () {
* },
* error: function(){}
* });
* </script>
* ```
*/
/**
* 创建桌面一键应用
* @namespace cmp.app
* @method createDesktopAppLink
* @param {Object} options 配置参数
* @param {String} options.displayName 桌面应用显示的名称
* @param {String} options.iconBase64Data 桌面应用显示图标
* @param {Object} options.options 应用配置参数
* @param {String} options.options.appId 应用id
* @param {String} options.options.version 应用版本
* @param {Function} options.success 成功后的回调
* @param {Function} options.error 失败后的回调
* @example
* ```
* <script>
* cmp.app.createDesktopAppLink({
* displayName:"M3",
* iconBase64Data:"data:image/png;base64:ajdkasjdask",
* options:{
* appId:"112312",
* version:"1.0.1"
* }
* success:function(result){
* //do something with result
* },
* error:function(error){
* }
* });
* </script>
* ```
*/
/**
* 获取桌面应用的信息
* @namespace cmp.app
* @method getOpenDesktopAppOptions
* @param {Object} options 配置参数
* @param {Function} options.success 成功后的回调
* @param {Function} options.error 失败后的回调
* @example
* ```
* <script>
* cmp.app.getOpenDesktopAppOptions({
* success:function(result){
* //do something with result
* },
* error:function(error){
* }
* });
* </script>
* ```
*/
/**
* ios状态栏颜色0=黑色 1=白色
* @namespace cmp.app
* @method setStatusBarStyleforiOS
* @param {Object} options 配置参数
* @param {Function} options.success 成功后的回调
* @param {Function} options.error 失败后的回调
* @example
* ```
* <script>
* cmp.app.setStatusBarStyleforiOS({
* statusBarStyle:0,
* success:function(result){
* //do something with result
* },
* error:function(error){
* }
* });
* </script>
* ```
*/
/**
* ios状态栏颜色0=黑色 1=白色
* @namespace cmp.app
* @method sendAjaxByActiveState
* @param {Object} options 配置参数
* @param {Function} options.success 成功后的回调
* @param {Function} options.error 失败后的回调
* @example
* ```
* <script>
* cmp.app.setStatusBarStyleforiOS({
* statusBarStyle:0,
* success:function(result){
* //do something with result
* },
* error:function(error){
* }
* });
* </script>
* ```
*/
/**
* 特殊情况的请求,当active的状态改变后才触发该缓存下的请求(ios不进行这个适配)
* @namespace cmp.app
* @method sendAjaxByActiveState
* @param {Object} options 配置参数
* @param {Object} options.hide active hide状态的请求
* @param {Object} options.hide.header 请求header
* @param {Object} options.hide.url 请求url
* @param {Object} options.hide.data 请求参数
* @param {Object} options.wakeup active唤醒状态的请求
* @param {Object} options.wakeup.header 请求header
* @param {Object} options.wakeup.url 请求url
* @param {Object} options.wakeup.data 请求参数
* @param {Function} options.success 成功后的回调
* @param {Function} options.error 失败后的回调
* @example
* ```
* <script>
* cmp.app.sendAjaxByActiveState({
* params:{
* hide:{
* header:{},
* url:"xxxx",
* data:{}
* },
* wakeup:{
* header:{},
* url:"xxxx",
* data:{}
* }
* },
* success:function(result){
* //do something with result
* },
* error:function(error){
* }
* });
* </script>
* ```
*/
/**
* ios 设置桌面icon 数字
* @namespace cmp.app
* @method setApplicationIconBadgeNumber
* @param {Object} options 配置参数
* @param {Number} options.badgeNumber数字角标
* @param {Function} options.success 成功后的回调
* @param {Function} options.error 失败后的回调
* @example
* ```
* <script>
* cmp.app.setApplicationIconBadgeNumber({
* badgeNumber:15,
* success:function(result){
* //do something with result
* },
* error:function(error){
* }
* });
* </script>
* ```
*/
/**
* 清除应用缓存
* @namespace cmp.app
* @method clearCache
* @param {Object} options 配置参数
* @param {Function} options.success 成功后的回调
* @param {Function} options.error 失败后的回调
* @example
* ```
* <script>
* cmp.app.clearCache({
* success:function(result){
* //do something with result
* },
* error:function(error){
* }
* });
* </script>
* ```
*/
/**
* 获取缓存大小
* @namespace cmp.app
* @method getCacheLength
* @param {Object} options 配置参数
* @param {Function} options.success 成功后的回调
* @param {Function} options.error 失败后的回调
* @example
* ```
* <script>
* cmp.app.getCacheLength({
* success:function(result){
* //do something with result
* },
* error:function(error){
* }
* });
* </script>
* ```
*/
/**
* 杀进程退出app
* @namespace cmp.app
* @method exitApp
* @param {Object} options 配置参数
* @param {Function} options.success 成功后的回调
* @param {Function} options.error 失败后的回调
* @example
* ```
* <script>
* cmp.app.exitApp({
* success:function(result){
* //do something with result
* },
* error:function(error){
* }
* });
* </script>
* ```
*/
/**
* 提示设置应用权限
* @namespace cmp.app
* @method setPermission
* @param {Object} options 配置参数
* @param {String} options.permissionTips 提示语
* @param {String} options.cancelText 取消按钮提示文字
* @param {String} options.toSetText 设置按钮提示文字
* @param {Function} options.success 成功后的回调
* @param {Function} options.error 失败后的回调
* @example
* ```
* <script>
* cmp.app.setPermission({
* permissionTips:"没有权限,请开启相关权限",
* cancelText:"取消",
* toSetText:"去设置",
* success:function(result){
* //do something with result
* },
* error:function(error){
* }
* });
* </script>
* ```
*/
/**
* 隐藏启动页
* @namespace cmp.app
* @method hideStartPage
* @param {Object} options 配置参数
* @param {Function} options.success 成功后的回调
* @param {Function} options.error 失败后的回调
* @example
* ```
* <script>
* cmp.app.hideStartPage({
* success:function(result){
* //do something with result
* },
* error:function(error){
* }
* });
* </script>
* ```
*/
/**
* 打开第三方原生应用(如打开第三方视频会议app)
* @namespace cmp.app
* @method openThirdNative
* @param {Object} options 配置参数
* @param {String} options.params 参数
* @param {String} options.appEnter app认证等
* @param {String} options.iosAppEntry ios入口信息
* @param {String} options.androidAppEntry android入口信息
* @param {String} options.androidDownloadUrl
* @param {String} options.iosDownloadUrl
* @param {Function} options.success 成功后的回调
* @param {Function} options.error 失败后的回调
* @example
* ```
* <script>
* cmp.app.openThirdNative({
* params:null,
* appEnter:"",
* iosAppEntry:"",
* androidAppEntry:"",
* androidDownloadUrl:"",
* iosDownloadUrl:"",
* success:function(result){
* //do something with result
* },
* error:function(error){
* }
* });
* </script>
* ```
*/
/**
* 权限插件
* @namespace cmp.app
* @method privilegeWrite
* @param {Object} options 配置参数
* @param {String} options.values 参数
* @param {Function} options.success 成功后的回调
* @param {Function} options.error 失败后的回调
* @example
* ```
* <script>
* cmp.app.privilegeWrite({
* values:{ hasColNew:true/false,xxx:true/false },
* success:function(result){
* //do something with result
* },
* error:function(error){
* }
* });
* </script>
* ```
*/