사용자 에이전트를 UserDefaults에 설정해야합니다. 다음 코드를 사용하여 설정할 수 있습니다.
func setUserAgent(as userAgentString: String) {
UserDefaults.standard.register(defaults: ["UserAgent": userAgentString])
}
사용법 :
let userAgentString = "USER AGENT STRING HERE"
setUserAgent(as: userAgentString)
편집 : 나는 현재 해당 UserAgent 일부 문자열을 추가 할 것을 볼
. 현재 사용자 에이전트의 값을 읽고 저장하고 사용자 정의 문자열을 추가 한 다음 새 사용자 에이전트를 저장해야합니다. 사용법은 동일하게 유지됩니다.
func setUserAgent(as value: String) {
let webView = UIWebView(frame: CGRect(width: 0, height: 0))
let defaultUserAgentString = webView.stringByEvaluatingJavaScript(from: "navigator.userAgent")
UserDefaults.standard.register(defaults: ["UserAgent": defaultUserAgentString + " " + value])
// remove the " " space if you don't need it
}
편집 2 :
예, 앱에서 모든 웹 뷰에 대한 변경됩니다 변경. 하나가 있다면 여기
func setUserAgent(as value: String) {
let webView = UIWebView()
Constants.defaultUserAgentString = webView.stringByEvaluatingJavaScript(from: "navigator.userAgent") ?? ""
UserDefaults.standard.register(defaults: ["UserAgent": defaultUserAgentString + " " + value])
}
func resetUserAgent() {
if let defaultString = Constants.defaultUserAgentString {
UserDefaults.standard.register(defaults: ["UserAgent": defaultString])
}
}
Constants
글로벌 상수를 저장하는 데 사용되는 구조체/클래스입니다 ...이 당신이 할 수있는 방지하기 위해, 당신은 당신의 자신의 구조체/클래스로 대체 할 수있다. 기본 사용자 에이전트를 추적하려면 정적 변수
defaultUserAgentString
을 추가하기 만하면됩니다. 완료하면
resetUserAgent()
을 사용하여 기본 사용자 에이전트로 다시 전환하십시오. 수정 된 사용자 에이전트가 필요한
WebView
을 처리하는
ViewController
에
viewWillDisappear(
에 추가하십시오.
감사! 그것은 작동합니다! 그냥 호기심에서 내 코드가 왜 ios 10에서 작동하는지 알고 있지만 이전 버전에서는 그렇지 않습니다. UserDefaults를 설정하면 제거해야합니다. 그렇지 않으면 다른 WebView에도 영향을 미칠 수 있습니까? – Samps
난 그냥 IOS 9.2로 테스트, 그것은 작동하는 것. 예, 다른 WebView에도 영향을 미칩니다. 이에 대한 수정 사항은 EDIT 2를 참조하십시오. 희망이 귀하의 질문에 대한 답변. – NSAdi