web-dev-qa-db-ja.com

UIWebViewはモバイルSafariと同じユーザーエージェントをリクエストヘッダーで送信しますか?

申し訳ありませんが、これは自分でテストするだけですが、現在Macがありません。 UIWebView内で作成されたWebリクエストは、モバイルSafariから作成されたWebリクエストと同じユーザーエージェント情報を送信しますか?

33
dl.

UIWebViewからのWebリクエストでは、ユーザーエージェント文字列に「Safari」という単語は含まれません。 Mobile SafariからのWebリクエストは可能です。これは、アプリ内またはMobile Safariからのリクエストであると判断するための最良の方法です。

アプリ内のUIWebViewからのサンプルユーザーエージェント:

User-Agent: Mozilla/5.0 (iPad; U; CPU OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile

Mobile Safariのサンプルユーザーエージェント:

User-Agent: Mozilla/5.0 (iPad; U; CPU OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari
34
dl.

スタンドアロンのモバイルSafariユーザーエージェント文字列には「バージョン」という単語が含まれていますが、uiWebViewユーザーエージェント文字列には含まれていません。そのため、検出スクリプトを次のように最新バージョンのiOSで動作するように変更できます。

var is_uiwebview = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Version)/i.test(navigator.userAgent);
13
unceus