BBASMUtilAdapterProtocol.h 2.78 KB
//
//  BBASMUtilAdapterProtocol.h
//  SWAN
//
//  Created by baidu on 2018/10/26.
//  Copyright © 2018 baidu. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "BBASMAdapterBaseImplement.h"

NS_ASSUME_NONNULL_BEGIN

@protocol BBASMUtilAdapterProtocol <NSObject>

@optional

/**
 * @brief ⚠️:小程序解压接口
 * 注:如果宿主不使用官方的SSZipArchive库,需实现这个接口;否则不需要实现接口
 * 解压成功,bUnzip为YES;解压失败,bUnzip为NO,errorDetail为自定义解压错误
 * @param souPath 被压缩文件路径,文件压缩格式:zip
 * @param desPath 压缩文件路径
 * @param finishedBlock 压缩完成回调
 */
+ (void)unzipFilePath:(NSString *)souPath
    toDestinationPath:(NSString *)desPath
        finishedBlock:(void (^)(BOOL bUnzip, NSString * _Nullable errorDetail))finishedBlock;

/**
 * @brief 开源宿主可自定义图片资源路径
 *
 * @return 返回图片资源的路径
 */
+ (NSString * _Nullable)mnpImagePath;

/**
 * @brief 打开宿主的特定页面
 * @param optionsDict 调起参数,不会为空
 * @param callback 一级回调
 * @param secondCallback 二级回调 status值为@"0"表示成功,非@“0”为失败错误码,如@”301“为找不到对应的模块,@"302"为模块找不到对应的方法
 */
+ (void)pageTransition:(NSDictionary *)optionsDict
              callback:(void (^)(BOOL success))callback
        secondCallback:(void (^)(NSString *status, NSString *message, NSDictionary * _Nullable data))secondCallback;

/**
 * @brief 检查打开当前宿主页面是否需要鉴权,由宿主实现决定,默认为需要鉴权
 * @param optionsDict 调起参数,不会为空
 * @return 是否需要鉴权
 */
+ (BOOL)shouldCheckPageTransitionAuthorize:(NSDictionary *)optionsDict;

/**
 * @brief 获取宿主是否允许通过广告组件跳转到其他App,默认允许跳转
 * @return 是否允许通过广告组件跳转其他App
 */
+ (BOOL)isAllowedAdOpenApp;

/**
 * @brief 宿主是否允许小程序通过openApp端能力跳转到手百,默认允许
 * @return 是否允许跳转到手百
 */
+ (BOOL)isAllowedOpenBaiduApp;

/**
 * @brief 获取宿主当前磁盘状态等级,默认磁盘等级为 0
 * 0 正常, 1 相对不足, 2 严重不足;
 * @return 当前磁盘状态等级
 */
+ (NSInteger)diskUsageLevel;

/// 转换webpData到image,如果宿主引用SDWebImage/WebP了实现了sd_imageWithWebPData:会在运行时调用,否则需要宿主去实现
/// @param data webpData
+ (UIImage * _Nullable)imageWithWebPData:(NSData *)data;

/**
 * @brief 获取c a i d
 * @return c a i d,该id有多套算法,故为数组
 */
+ (NSArray *)getUserFeedBackLogs;

/// 根据应用scheme检查App是否安装
+ (BOOL)checkAppInstalled:(NSString *)scheme;

@end

NS_ASSUME_NONNULL_END