/**
 * 该模块是和原生部分有强交互的行为,需要了解一定的android  ios开发调用此模块的API
 * @module native
 */

/** 网络类,包括对当前网络的判断和网络信息
 * @class connection
 */

/**
 * 获取当前网络类型
 * @namespace cmp
 * @method getNetworkType
 * @param {Object} options 配置参数
 *      @param {Function} options.success 获取成功后的回调
 * @example
 * ```
 * <script>
 *    cmp.connection.getNetworkType({
 *        success:function(networkState){
 *             //do something with networkState
 *        }
 *    });
 * </script>
 * ```
 * @returns {String} networkState 类型有:<br>
 *     <ul>
 *         <li>Unknown:未知网络</li>
 *         <li>Ethernet:以太网</li>
 *         <li>wifi:wifi</li>
 *         <li>2g:2g网络</li>
 *         <li>3g:3g网络</li>
 *         <li>4g:4g网络</li>
 *         <li>generic:未受保护的通用网络</li>
 *         <li>NONE:没有网络</li>
 *     </ul>
 */

/**
 * 获取当前网络详情
 * @namespace cmp
 * @method getNetworkDetail
 * @param {Object} options 配置参数
 *      @param {Function} options.success 获取成功后的回调
 * @example
 * ```
 * <script>
 *    cmp.connection.getNetworkDetail({
 *        success:function(networkDetail){
 *             //do something with networkDetail
 *        }
 *    });
 * </script>
 * ```
 *
 *
 */

/**
 * @class data
 */

/**
 * 数据压缩
 * @namespace cmp
 * @method compressData
 * @param {Object} options 配置参数
 *      @param {String} options.data 待压缩的数据
 *      @param {Function} options.success 压缩成功后的回调
 *      @param {Function} options.error 压缩失败后的回调
 * @example
 * ```
 * <script>
 *    cmp.compressData({
 *         data:"{&quot UserName &quot:&quot LiYang &quot,&quot Password &quot:&quot 123 &quot,&quot errorCode &quot:&quot0&quot}"
 *        success:function(result){
 *             //do something with result
 *        },
 *        error:function(error){
 *        }
 *    });
 * </script>
 * ```
 *
 */

/**
 * 数据解压
 * @namespace cmp
 * @method decompressData
 * @param {Object} options 配置参数
 *      @param {String} options.data 待解压的数据
 *      @param {Function} options.success 解压成功后的回调
 *      @param {Function} options.error 解压失败后的回调
 * @example
 * ```
 * <script>
 *    cmp.decompressData({
 *         data:""
 *        success:function(result){
 *             //do something with result
 *        },
 *        error:function(error){
 *        }
 *    });
 * </script>
 * ```
 */

/**
 * 一键桌面应用相关
 * @class desktop
 */

/**
 * 创建桌面一键应用
 * @namespace cmp
 * @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.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
 * @method getOpenDesktopAppOptions
 * @param {Object} options 配置参数
 *      @param {Function} options.success 成功后的回调
 *      @param {Function} options.error 失败后的回调
 * @example
 * ```
 * <script>
 *    cmp.getOpenDesktopAppOptions({
 *        success:function(result){
 *             //do something with result
 *        },
 *        error:function(error){
 *        }
 *    });
 * </script>
 * ```
 */

/**
 * 杀进程退出app
 * @namespace cmp
 * @method exitApp
 * @param {Object} options 配置参数
 *      @param {Function} options.success 成功后的回调
 *      @param {Function} options.error 失败后的回调
 * @example
 * ```
 * <script>
 *    cmp.exitApp({
 *        success:function(result){
 *             //do something with result
 *        },
 *        error:function(error){
 *        }
 *    });
 * </script>
 * ```
 */

/**
 * 消息推送相关
 * @class push
 */

/**
 * 开启消息推送服务
 * @namespace cmp
 * @method startPush
 * @param {Object} options 配置参数
 *      @param {Function} options.success 成功后的回调
 *      @param {Function} options.error 失败后的回调
 * @example
 * ```
 * <script>
 *    cmp.push.startPush({
 *        success:function(result){
 *             //do something with result
 *        },
 *        error:function(error){
 *        }
 *    });
 * </script>
 * ```
 */

/**
 * 设置消息推送参数(是否接收消息,是否声音提醒等)
 * @namespace cmp
 * @method setPushConfig
 * @param {Object} options 配置参数
 *      @param {String} options.userKey 用来存储消息设置的唯一的key
 *      @param {Boolean} options.showContent 是否通知显示消息详情 默认true
 *      @param {Boolean} options.soundRemind 是否有声音 默认true
 *      @param {Boolean} options.vibrationRemind 是否震动 默认true
 *      @param {Array} options.platforms android使用,进行推送的消息平台"baidu","xiaomi","huawei"
 *      @param {Function} options.success 成功后的回调
 *      @param {Function} options.error 失败后的回调
 * @example
 * ```
 * <script>
 *    cmp.push.setPushConfig({
 *        userKey:"xxasd",
 *        showContent:true,
 *        soundRemind:true,
 *        vibrationRemind:true,
 *        platforms:["baidu","xiaomi","huawei"],
 *        success:function(result){
 *             //do something with result
 *        },
 *        error:function(error){
 *        }
 *    });
 * </script>
 * ```
 */

/**
 * 停止消息推送服务
 * @namespace cmp
 * @method stopPush
 * @param {Object} options 配置参数
 *      @param {Function} options.success 成功后的回调
 *      @param {Function} options.error 失败后的回调
 * @example
 * ```
 * <script>
 *    cmp.push.stopPush({
 *        success:function(result){
 *             //do something with result
 *        },
 *        error:function(error){
 *        }
 *    });
 * </script>
 * ```
 */

/**
 * 获取离线消息推送配置
 * @namespace cmp
 * @method getRemoteNotificationToken
 * @param {Object} options 配置参数
 *      @param {String} options.userId 用户id
 *      @param {String} options.serverIdentifier 服务器唯一标识
 *      @param {Boolean} options.showContent 是否通知显示消息详情 默认true
 *      @param {Boolean} options.soundRemind 是否有声音 默认true
 *      @param {Boolean} options.vibrationRemind 是否震动 默认true
 *      @param {Array} options.platforms android使用,进行推送的消息平台"baidu","xiaomi","huawei"
 *      @param {Function} options.success 成功后的回调
 *      @param {Function} options.error 失败后的回调
 * @example
 * ```
 * <script>
 *    cmp.push.getRemoteNotificationToken({
 *        userId:"xxasd",
 *        serverIdentifier:"123333",
 *        showContent:true,
 *        soundRemind:true,
 *        vibrationRemind:true,
 *        platforms:["baidu","xiaomi","huawei"],
 *        success:function(result){
 *             //do something with result
 *        },
 *        error:function(error){
 *        }
 *    });
 * </script>
 * ```
 * @returns {Object}
 * <ul>
 *     <li>clientProtocolType = iPhoneInHouse; //设备类型 android、iPad、iPadInHouse、iPhone、iPhoneInHouse</li>
 *     <li>tokens = {"baidu":"612021290303441655", "xiaomi":"23423456"}; // 用户注册id/li>
 *     <li>platforms = ["baidu", "xiaomi"];// 消息推送平台 baidu、 xiaomi 、huawei</li>
 * </ul>
 */

/**
 * 获取离线消息推送服务
 * @namespace cmp
 * @method getRemoteNotification
 * @param {Object} options 配置参数
 *      @param {Function} options.success 成功后的回调
 *      @param {Function} options.error 失败后的回调
 * @example
 * ```
 * <script>
 *    cmp.push.getRemoteNotification({
 *        success:function(result){
 *             //do something with result
 *        },
 *        error:function(error){
 *        }
 *    });
 * </script>
 * ```
 */
    
Top