Android WebView userAgent 를 데스크 톱 UA 인 스 턴 스 로 설정

최근 큰 화면 항목 에 서 는 알 리 페 이 스 스 캔 결제 에 사용 되 지만 웹 뷰 에 스 캔 결제 링크 를 불 러 올 때 자동 으로 모 바 일 페이지 로 이동 합 니 다.인터넷 에서 어떻게 설정 하 는 지 찾 아 보 았 지만 해결 방안 을 찾 지 못 했 습 니 다.그래서 자기가 마음대로 해 봤 어 요.
webview.getSettings().setUserAgentString("PC");
혹시
webview.getSettings().setUserAgent String("컴퓨터");
진짜 된다 니.
userAgent 는 브 라 우 저 표지,Android/iphone/ipod/ipad/PC 등 을 설정 할 수 있 습 니 다.이것 은 퍼 지 검색 과 같이 비슷 한 값 을 전달 하면 됩 니 다.데스크 톱 페이지 나 모 바 일 페이지 를 자동 으로 불 러 옵 니 다.전 제 는 이 페이지 들 이 데스크 톱 페이지 와 모 바 일 페이지 가 있어 야 하고 ua 판단 을 해서 해당 페이지 를 옮 겨 야 한 다 는 것 이다.전 달 된 ua 가 인식 되 지 않 으 면 데스크 톱 페이지 를 자동 으로 불 러 옵 니 다.
추가 지식:사용자 정의 webView userAgent
user-agent 사용자 대 리 는 브 라 우 저 를 말 하 는데 그 정 보 는 하드웨어 플랫폼,시스템 소프트웨어,응용 소프트웨어 와 사용자 개인 선 호 를 포함한다.사용자 에이전트 의 능력 과 선 호 는 메타 데이터 나 사용자 에이전트 의 하드웨어 와 소프트웨어 의 특성 과 설명 이 라 고 볼 수 있다.사용자 정의 user-agent 를 통 해 특정한 브 라 우 저 에 특정한 메 시 지 를 읽 을 수 있 습 니 다.

  UIWebView * webView = [[UIWebView alloc] initWithFrame:CGRectZero];
  NSString * oldAgent = [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
  NSLog(@"old agent :%@", oldAgent);

  //add my info to the new agent
  NSString * newAgent = [oldAgent stringByAppendingString:@" SuGrand/2.4.7 ch_appstore"];

  // or updata my info to the new agent
//  NSString * newAgent = [NSString stringWithFormat:@"Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12H141"];

  NSLog(@"new agent :%@", newAgent);

  //regist the new agent
  NSDictionary * dic = [[NSDictionary alloc] initWithObjectsAndKeys:newAgent, @"UserAgent", nil];
  [[NSUserDefaults standardUserDefaults] registerDefaults:dic];
이렇게 해서 WebView 가 요청 할 때 user-agent 는 우리 가 설정 한 것 입 니 다.WebView 사용 과정 에서 user-agent 를 다시 변경 하려 면 이러한 방식 으로 user-agent 를 수정 한 다음 에 WebView 를 다시 예화 해 야 합 니 다.

  __weak typeof(self) weakSelf = self;

  [self.webView evaluateJavaScript:@"navigator.userAgent" completionHandler:^(id result, NSError *error) {
    __strong typeof(weakSelf) strongSelf = weakSelf;

    NSLog(@"old agent :%@", result);

    NSString *userAgent = result;
    NSString *newUserAgent = [userAgent stringByAppendingString:@" Appended Custom User Agent"];

    NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:newUserAgent, @"UserAgent", nil];
    [[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];

    strongSelf.webView = [[WKWebView alloc] initWithFrame:strongSelf.view.bounds];

    // After this point the web view will use a custom appended user agent
    [strongSelf.webView evaluateJavaScript:@"navigator.userAgent" completionHandler:^(id result, NSError *error) {
      NSLog(@"new agent :%@", result);
    }];
  }];
이 안 드 로 이 드 웹 뷰 userAgent 를 데스크 톱 UA 인 스 턴 스 로 설정 한 것 은 편집장 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시기 바 랍 니 다.많은 응원 부 탁 드 리 겠 습 니 다.

좋은 웹페이지 즐겨찾기