UserAgent 설정을 매우 쉽게 사용자 지정하는 방법

5986 단어 XcodeiOSObjective-C
2016/0901 この記事は環境:Xcode7.3.1です。

목적



WebView에서 표시할 때 서버에 Request하는 User-Agent 헤더에 앱 버전을 부여시키고 싶다.

AppDelegate 편집(UIWebView)



WebView를 사용하여 통신하기 전에 설정하지 않으면 반영되지 않으므로 AppDelegate didFinishLaunchingWithOptions에 설명합니다.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

// デフォルトのUserAgentを取得するために、サイズゾロのUIWebViewインスタンスを生成
    UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectZero];

    // デフォルトのUserAgentを取得
    NSString *userAgent = [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];

    NSString *appVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];

    // デフォルトのUserAgent文字列後尾にアプリバージョンを追加した文字列を作成
    NSString *customUserAgent = [userAgent stringByAppendingString:[NSString stringWithFormat:@" AppVersion/%@",appVersion]];

    // UserAgentをkyeとし,customUserAgentをvalueとした辞書型変数を作成
    NSDictionary *userAgentDict = [[NSDictionary alloc] initWithObjectsAndKeys:customUserAgent, @"UserAgent", nil];

    // ユーザーデフォルトにカスタムUserAgentを設定
    [[NSUserDefaults standardUserDefaults] registerDefaults:userAgentDict];

 }

기본 UserAgent를 사용하지 않는 경우의 설명은 매우 적어, 상기 didFinishLaunchingWithOptions에 있어서 2행으로 설정할 수 있습니다

   // UserAgentをkyeとし,customUserAgentをvalueとした辞書型変数を作成
    NSDictionary *userAgentDict = [[NSDictionary alloc] initWithObjectsAndKeys:@"InsertCustomUserAgent!!", @"UserAgent", nil];

    // ユーザーデフォルトにカスタムUserAgentを設定
    [[NSUserDefaults standardUserDefaults] registerDefaults:userAgentDict];


AppDelegate 편집(WKWebView)



마찬가지로 WebView를 사용하여 통신하기 전에 설정하지 않으면 반영되지 않으므로 AppDelegate didFinishLaunchingWithOptions에 설명합니다. WKWebView는 UserAgent 프로퍼티가 준비되어 있으므로 대입하는 것만으로 설정할 수 있습니다.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    WKWebView *webView = [[WKWebView alloc] init];
    webView.customUserAgent = @"InsertCustomUserAgent!!";
}

좋은 웹페이지 즐겨찾기