我在演示中为我的 webview 设置自定义用户代理时遇到问题我只是想将它设置为我的 Safari 用户代理。似乎很难找到如何在基于 swift 的 osx cocoa 应用程序中执行此操作的示例。
这是我的代码:
import Cocoa
import WebKit
class ViewController: NSViewController {
@IBOutlet weak var webView: WebView!
@IBOutlet weak var progressIndicator: NSProgressIndicator!
override func viewDidAppear() {
super.viewDidAppear()
self.view.window?.titleVisibility = .Hidden
self.view.window?.titlebarAppearsTransparent = true
self.view.window?.styleMask |= NSFullSizeContentViewWindowMask
let urlString = NSURL(string: "http://whatsmyuseragent.com")
NSUserDefaults.standardUserDefaults().registerDefaults(["UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/600.7.12 (KHTML, like Gecko) Version/8.0.7 Safari/600.7.12"])
self.webView.mainFrame.loadRequest(NSMutableURLRequest(URL: urlString!))
}
override var representedObject: AnyObject? {
didSet {
// Update the view, if already loaded.
}
}
override func webView(sender: WebView!, didStartProvisionalLoadForFrame frame: WebFrame!) {
self.progressIndicator.startAnimation(self)
}
override func webView(sender: WebView!, didFinishLoadForFrame frame: WebFrame!) {
self.progressIndicator.stopAnimation(self)
}
override func mouseEntered(event: NSEvent) {
}
}
我也看到了UIWebView iOS5 changing user-agent给出的代码示例似乎没有做任何事情和/或我把它放在了错误的地方。我有 2 个文件“AppDelegate.swift”和“ViewController.swift”我在这两个文件的不同位置尝试了代码但无济于事。
谢谢!
最佳答案
这方面的重要属性是 WebView customUserAgent:
和 WebView applicationNameForUserAgent:
。
用新的用户代理字符串替换整个用户代理字符串:
webView.customUserAgent = "MyAgent/1.0.0"
将您的应用字符串附加到现有的用户代理字符串上:
webView.applicationNameForUserAgent = "MyAgent/1.0.0"
关于macos - 如何使用 swift 为 osx webview 设置自定义用户代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31839122/