BDPUserAgent.h 3.07 KB
//
//  BDPUserAgent.h
//  BBAPods-BoxKit
//
//  Created by Guo,Jin(MAD) on 2018/1/3.
//  Copyright © 2018年 Baidu. All rights reserved.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

typedef NSString* BBAWebViewUserAgent;

FOUNDATION_EXTERN BBAWebViewUserAgent const BBAWebViewUserAgentNo;

@interface BDPUserAgent : NSObject

/// 是否用统一标准化的UA
@property (nonatomic, assign) BOOL isUnifiedUserAgent;
/// 使用ShortVersion,默认使用BuildVersion
@property (nonatomic, assign) BOOL useShortVersion;

+ (instancetype)shared;

/**
 * @brief 设置手百WebView的UA
 *
 * @param ua ua值,为空则设置默认UA
 *
 */
+ (void)setBBAWebViewUserAgent:(BBAWebViewUserAgent)ua;

/**
 * @brief 获取Webview默认UserAgent
 *
 * @return 默认UA
 */
- (BBAWebViewUserAgent)webViewDefaultUserAgent;

/**
 * @brief 获取手百各框架UA(格式:原始UA 框架 产品线标识 客户端标示/客户端版本 (Baidu; 系统平台标示 系统版本))
 *
 * @param aFrom 框架标识
 *
 * @return 合成后的UA
 */
- (NSString *)composeUserAgentParameterWithOrigin:(NSString *)aFrom;

/**
 * @brief 获取手百各框架UA(格式:原始UA 框架 产品线标识 客户端标示/客户端版本 (Baidu; 系统平台标示 系统版本))
 *
 * @param aFrom 框架标识
 * @param shouldEncodeURI aFrom是否需要做encodeURIComponent。YES的情况下,会针对aFrom整体做encodeURIComponent
 *
 * @return 合成后的UA
 */
- (NSString *)composeUserAgentParameterWithOrigin:(NSString *)aFrom shouldEncodeURI:(BOOL)shouldEncodeURI;

/**
 * @brief 为WebView默认UserAgent拼装参数(会影响所有NA和WebView的请求)
 *
 * @param uaParam 拼装到默认UserAgent后的参数
 */
- (void)composeWebViewDefaultUserAgentWithParam:(NSString *)uaParam;

/**
 * @brief 原始UA App自扩展信息(NAbar/1.0 lightApp/1.0) 产品线信息(bdapp/{user-agent protocl version} ({appName}; {schemeHeader})) app信息({appname}/{app_versionName} ({百度标识}; {平台标识} {系统版本号}))
    如:Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 main/1.0 SP-engine/2.14.0 NABar/1.0 bdapp/1.0 (youjia; youjia) youjia/1.0.1 (Baidu; P2 13.3)
 * appname和schemeHeader默认取BaiduService-Info.plist中APP_NAME字段
 *
 * @param param 框架标识
 *
 * @return 合成后的UA
 */
- (NSString *)userAgentParam:(NSString *)param;

/**
 * @brief 原始UA App自扩展信息(NAbar/1.0 lightApp/1.0) 产品线信息(bdapp/{user-agent protocl version} ({appName}; {schemeHeader})) app信息({appname}/{app_versionName} ({百度标识}; {平台标识} {系统版本号}))
    如:Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 main/1.0 SP-engine/2.14.0 NABar/1.0 bdapp/1.0 (youjia; youjia) youjia/1.0.1 (Baidu; P2 13.3)
 *
 * @param param 框架标识
 * @param schemeHeader scheme头
 * @param appName appName
 *
 * @return 合成后的UA
 */
- (NSString *)userAgentParam:(NSString *)param schemeHeader:(NSString *)schemeHeader appName:(NSString *)appName;

@end

NS_ASSUME_NONNULL_END