BDPUserAgent.h
3.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
//
// 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