WebKit.WebView 有一个 Settings.UserAgent 选项,但它只有一个 get() 方法定义,所以我无法设置该值。我似乎找不到其他可能的地方。
问问题
751 次
1 回答
0
好吧,这就是如何做到的......
覆盖 WebKit.WebSettings 类并访问受 GLib.Object 保护的成员 SetProperty:
class ExposedWebSettings : WebKit.WebSettings {
public void g_object_set(string name, GLib.Value value) {
SetProperty(name, value);
}
}
然后你可以实例化这个对象并调用 g_object_set 来设置任何属性......
WebView webView = new WebView();
ExposedWebSettings settings = new ExposedWebSettings();
settings.g_object_set("user-agent", new GLib.Value("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20120427 Firefox/15.0a1"));
webView.Settings = settings;
webView.Open ("http://www.google.com");
顺便说一下,这就是 GLib.Object.SetProperty 的样子:
protected void SetProperty (string name, Value val)
{
IntPtr intPtr = Marshaller.StringToPtrGStrdup (name);
Object.g_object_set_property (this.Raw, intPtr, ref val);
Marshaller.Free (intPtr);
}
于 2013-06-28T14:36:59.327 回答