SwiftでUserAgentを書き換える
iOSのWebView使って、PC版サイトを表示したいとき。
func changeUserAgent(){
let userAgentStr = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.63 Safari/537.36"
let dic:NSDictionary = ["UserAgent":userAgentStr]
NSUserDefaults.standardUserDefaults().registerDefaults(dic)
}
- SwiftでUAについて参考: iOS - [Swift]UserAgentを設定する - Qiita
- SwiftのWebView参考: 009 UIWebViewでページを表示 - Swift Docs
- UserAgent一覧: userAgent一覧/ユーザーエージェント一覧
実装ソース
import UIKit
class FirstViewController: UIViewController,UIWebViewDelegate {
@IBOutlet weak var twitterWebView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
changeUserAgent()
loadTwitterWebView()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
// UA書き換え
func changeUserAgent(){
let userAgentStr = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.63 Safari/537.36"
let dic:NSDictionary = ["UserAgent":userAgentStr]
NSUserDefaults.standardUserDefaults().registerDefaults(dic)
}
// webview load
func loadTwitterWebView(){
twitterWebView.delegate = self
let url: NSURL = NSURL(string: "http://twitter.com")!
let request: NSURLRequest = NSURLRequest(URL: url)
twitterWebView.loadRequest(request)
}
/*
Pageがすべて読み込み終わった時呼ばれる
*/
func webViewDidFinishLoad(webView: UIWebView!) {
println("webViewDidFinishLoad")
println(webView.request?.URL)
}
/*
Pageがloadされ始めた時、呼ばれる
*/
func webViewDidStartLoad(webView: UIWebView!) {
println("webViewDidStartLoad")
println(webView.request?.URL)
}
}