在Android上引发了xamarin.forms webview.focused事件,但在iOS上却没有

时间:2019-03-11 14:23:53

标签: ios xamarin.forms webview

我正在使用Xamarin.Forms网格应用程序在CardCard网格的单元格中显示几个HTML元素作为WebView:

    private async void CreateCardView()
    {
        CardGrid.Children.Clear();

        // idx over all count elements of html snippets
        for (idx = 0; idx < count; idx++)
        {
            string html = AuthoringCard(idx);
            RenderingCard(html, idx);
        }
    }

AuthoringCard()创建html代码段。

RenderingCard()在网格单元内创建WebView。

    private void RenderingCard(string htmlCard, int index)
    {
        int CardWidth = 300;
        int CardHeight = 150;
        int CardNoHorizontally = 3;

        WebView uiCard = new WebView();
        uiCard.HeightRequest = CardHeight - 5;
        uiCard.WidthRequest= CardWidth - 5;
        uiCard.VerticalOptions = LayoutOptions.Start;
        uiCard.HorizontalOptions = LayoutOptions.Center;
        uiCard.Margin = new Thickness(0);
        uiCard.AutomationId = index.ToString();
        uiCard.Focused += Card_Tapped;
        uiCard.InputTransparent = false;

        var htmlSource1 = new HtmlWebViewSource
        {
            Html = htmlCard,
        };
        uiCard.Source = htmlSource1;

        CardGrid.Children.Add(uiCard);

        int row = (int)Math.Floor((double)(index / CardNoHorizontally));
        int column = index - (row * CardNoHorizontally);

        Grid.SetRow(uiCard, row);
        Grid.SetColumn(uiCard, column);
    }

当用户点击卡(WebView)并使用AutomationId获取卡的索引(html代码段)时,我想捕获Focused事件:

    private void Card_Tapped(object sender, EventArgs e)
    {
        WebView card = (WebView)sender;

        int index = Convert.ToInt16(card.AutomationId));
    }

这在Android上正常工作。在iOS下,该事件永远不会引发。有解决方案的想法吗?

0 个答案:

没有答案