1

我正在使用 go-webkit 并且我有一个 webkitsettings 实例,我该如何更改设置?

我正在尝试做这样的事情

main.go

webview := webkit.NewWebView()
settings := webview.GetSettings()
settings.SetEnableJavascript(false)
webview.SetSettings(settings)

来自https://github.com/mattn/go-webkit/blob/master/webkit/webkit.go#L370的 go-webkit 片段

type WebSettings struct {
        glib.GObject
}

func (settings *WebSettings) SetEnableJavascript (flag bool) {
//I tried various ways
//C.g_object_set?
}
func (v *WebView) SetSettings(settings *WebSettings) {
        C.webkit_web_view_set_settings(v.getWebView(), C.to_WebKitWebSettings(settings.Object));
}
func (v *WebView) GetSettings() *WebSettings {
        return &WebSettings{glib.GObject{unsafe.Pointer(C.webkit_web_view_get_settings(v.getWebView()))}}
}
func NewWebSettings() *WebSettings {
        return &WebSettings{glib.GObject{unsafe.Pointer(C.webkit_web_settings_new())}}

}

Webkit API: 1.0 http://webkitgtk.org/reference/webkitgtk/stable/WebKitWebSettings.html

/* Create a new websettings and disable java script */
WebKitWebSettings *settings = webkit_web_settings_new ();
g_object_set (G_OBJECT(settings), "enable-scripts", FALSE, NULL);

/* Apply the result */
webkit_web_view_set_settings (WEBKIT_WEB_VIEW(my_webview), settings);
4

1 回答 1

1

WebSettingsembedsglib.GObject依次实现该Set方法(参见godoc)。

所以g_object_set应该在你的情况下翻译成,settings.GObject.Set或者,当方法集GObject被导出到时WebSettings,你可以简单地做

settings.Set("enable-scripts", false)
于 2014-01-13T17:36:22.560 回答