我正在尝试使 xaml 标签中的 HTML 超链接可单击。我创建了一些类,这些类从 API 获取包含 HTML 的字符串,并在 Android 和 iOS 中的自定义标签渲染器中将其正确渲染为 HTML。为了更好地理解我的困境,有必要解释一下我的使用范围。
在我的应用程序中,我有一个消息传递组件,它仅使用 API 来从网站上发布和获取对话,该网站主要用于更好地帮助我们的用户,因为我们的办公室因冠状病毒而关闭。网站上的消息中心允许像网络论坛帖子一样复杂的文本格式,例如粗体、斜体、超链接等。
为了在移动设备上正确显示此内容,我必须创建一个自定义标签渲染器,它将采用带有 HTML 标签的字符串并将其正确显示为消息正文。这是一个足够简单的任务。
问题在于,消息有时可能具有超链接,当前显示为正确的链接,但当用户尝试单击链接时,列表项会注册点击,而不是标签或标签内的 html 链接。
预期结果是,当用户单击列表中标签内的超链接时,它将在设备默认浏览器中打开该超链接。
我知道一种解决方案可能是解析消息正文中的任何链接,创建链接列表,然后动态地将跨度添加到标签,每个标签都有自己的手势识别器,但这对我来说是不可能的,因为超链接有时会在对话中途出现。消息正文的示例可以是:
“您好,用户,请访问此链接登录您的帐户。”
我知道有比这更好的方法来创建消息应用程序,但移动端的主要目的是让用户更容易地访问员工的回复,以及对员工消息的简单聊天回复。工作人员将专门使用该网站来回复用户,并可以利用复杂的编辑器更好地帮助用户。
谢谢。编辑:

在上面的示例中,末尾的链接不可点击。当我单击链接时,整个列表视图项目都会突出显示,就好像该 ui 元素的优先级高于其中的标签。
相关代码:
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Frame
Margin="5"
Padding="0"
BorderColor="LightGray"
CornerRadius="15"
HasShadow="False">
<StackLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<StackLayout
Padding="5"
BackgroundColor="#f5f5f5"
Orientation="Horizontal">
<Label
Margin="5,2.5,5,2.5"
BackgroundColor="Transparent"
FontAttributes="Bold"
FontSize="Small"
HorizontalOptions="FillAndExpand"
HorizontalTextAlignment="Start"
Text="{Binding SentBy}"
TextColor="Black"
VerticalOptions="FillAndExpand" />
<Label
Margin="5,2.5,5,2.5"
BackgroundColor="Transparent"
FontAttributes="Bold"
FontSize="Small"
HorizontalOptions="FillAndExpand"
HorizontalTextAlignment="End"
Text="{Binding Sent}"
TextColor="Black"
VerticalOptions="FillAndExpand" />
</StackLayout>
<StackLayout Padding="5" Orientation="Horizontal"> …Run Code Online (Sandbox Code Playgroud)