WKWebViewのUser-Agent偽装方法について
モバイル端末とPC端末で表示が異なるWebサイトをWKWebViewを用いて開きましたが、アクセス元がモバイル端末なので当然モバイルサイトがでてきてしまいます
これをPC用のサイトを開くようなふるまいにしたいのです
そこでUser-Agentを偽装しようと
AppDelegateの didFinishLaunchingWithOptionsに
UserDefaults.standard.set("UserAgent" , forKey:"PC Agent")
”PC Agent”はPCから取得したUser-Agentです
としてみましたが結果は変わらず、皆様のお力添えをお願いしたいと思い質問いたしました
よろしくお願いします
環境は
Xcode9.2
Swift4.0
iOS11.1
iPhone X
です
追記
コード中にあるUserAgentを調べるWebサイトをWKwebViewで開きcustomUserAgentが変更されているか否かを確認しています
以下のコードでUserAgentの変更を確認しました
import UIKit
import WebKit
class ViewController: UIViewController {
// adjust SafeArea top space
// portrait のみを想定
var topPadding:CGFloat = 0
override func viewDidAppear(_ animated: Bool){
print("viewDidAppear")
let screenWidth:CGFloat = view.frame.size.width
let screenHeight:CGFloat = view.frame.size.height
// iPhone X , X以外は0となる
if #available(iOS 11.0, *) {
let window = UIApplication.shared.keyWindow
topPadding = window!.safeAreaInsets.top
}
// Webページの大きさを画面に合わせる,横画面
let rect = CGRect(x: topPadding,
y: 0,
width: screenWidth - topPadding,
height: screenHeight)
let webConfiguration = WKWebViewConfiguration()
var webView = WKWebView(frame: rect, configuration: webConfiguration)
let userAgentStr = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146"
webView.customUserAgent = userAgentStr
let webUrl = URL(string: "https://www.baka-ke.com/lab/useragent.php")!
let myRequest = URLRequest(url: webUrl)
webView.load(myRequest)
// インスタンスをビューに追加する
view.addSubview(webView)
}
}