How to handle context menu in WebViewRenderer?

823 Views Asked by At

I know I can add context menu items this way to the Xamarin.Forms custom renderer:

public class MyRenderer: WebViewRenderer
{
    protected override void OnCreateContextMenu (Android.Views.IContextMenu menu)
    {
        base.OnCreateContextMenu (menu);
        menu.Add (Resource.String.teststring);

    }
}

Now, where do I specify the action for selecting that item I've added?

1

There are 1 best solutions below

0
On BEST ANSWER

The solution is to use SetOnMenuItemClickListener on the item that's been added. You can set the handler as the renderer and implement the handling method:

public class MyRenderer: WebViewRenderer, IMenuItemOnMenuItemClickListener
{
    protected override void OnCreateContextMenu (Android.Views.IContextMenu menu)
    {
        base.OnCreateContextMenu (menu);
        var item = menu.Add (Resource.String.teststring);
        item.SetOnMenuItemClickListener (this);

    }

    public bool OnMenuItemClick (IMenuItem item)
    {
        System.Diagnostics.Debug.WriteLine (item.ItemId);
        return true;
    }
}