You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: platform.go
    path of file: ./repos/go-flutter
    
    the code of the file until where you have to start completion: package flutter

import (
	"encoding/json"

	"github.com/go-gl/glfw/v3.3/glfw"
	"github.com/pkg/errors"

	"github.com/go-flutter-desktop/go-flutter/plugin"
)

// platformPlugin implements flutter.Plugin and handles method calls to the
// flutter/platform channel.
type platformPlugin struct {
	popBehavior popBehavior

	messenger plugin.BinaryMessenger
	window    *glfw.Window

	// flutterInitialized is used as callba
    
func (p *platformPlugin) InitPlugin(messenger plugin.BinaryMessenger) error {
	p.messenger = messenger
	channel := plugin.NewMethodChannel(p.messenger, "flutter/platform", plugin.JSONMethodCodec{})

	channel.HandleFuncSync("Clipboard.setData", p.handleClipboardSetData)
	channel.HandleFuncSync("Clipboard.getData", p.handleClipboardGetData)
	channel.HandleFuncSync("Clipboard.hasStrings", p.handleClipboardHasString)

	channel.HandleFuncSync("SystemNavigator.pop", p.handleSystemNavigatorPop)
	channel.HandleFunc("SystemChrome.setApplicationSwitcherDescription", p.handleWindowSetTitle)

	// Ignored: Desktop's don't have system overlays
	channel.HandleFuncSync("SystemChrome.setSystemUIOverlayStyle", func(_ interface{}) (interface{}, error) { return nil, nil })
	// Ignored: Desktop's don't have haptic feedback
	channel.HandleFuncSync("HapticFeedback.vibrate", func(_ interface{}) (interface{}, error) { return nil, nil })
	// Ignored: Desktop's don't play sound on every clicks
	channel.HandleFuncSync("SystemSound.play", func(_ interface{}) (interface{}, error) { return nil, nil })

	return nil
}