Android WebView userAgentをデスクトップUAの例に設定します。


最近の大画面の項目ではアリスキャンコードを使って支払いますが、webviewでスキャンコードをロードしてリンクを支払うと自動的にモバイルページにジャンプします。ネットではどのように設定されているかを調べますが、解決策が見つかりません。そこで自分で勝手に試してみました。
webview.get Settings().setsUserAgentString("PC")
または
webview.get Settings().setsUserAgentString("コンピュータ")
本当に大丈夫です。
userAgentはブラウザーの標識を設けることができて、Android/iphone/ipod/ipad/PCなど、これははっきりしない検索をするようにすることがあるべきで、近くの値を伝えてもいいです。デスクトップページまたはモバイルページを自動的に読み込みます。これらのページにはデスクトップページとモバイル版ページがあります。アップロードされた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);
    }];
  }];
以上のAndroid WebView userAgentはデスクトップUAに設定されています。例としては、小編集が皆さんに共有している内容です。参考にしていただければと思います。どうぞよろしくお願いします。