我正在学习Xamarin Forms。特别是,如果我想共享一个复杂的链接,但文字是否简单,您该怎么做?我现在所拥有的如下。
await Share.RequestAsync(new ShareTextRequest
{
Uri = "thelink",
Title = "title", //ios doesn't use title
Text = "extra text"
});
这显然只是放在链接和一些文本中。但我想要更类似于html超链接的内容。
答案 0 :(得分:0)
好吧,如果您问如何在Xamarin表单中放置一个hiperlink,可以进行like this,只需在Portable项目中创建一个类,然后从您的XAML页面调用它,但请记住阅读{ {3}}文档,因为您需要将其放入info.plist:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>lyft</string>
<string>fb</string>
</array>
答案 1 :(得分:0)
如果您用{strong>超链接来表示Label
,则可以查看此文档here。
由Label
和Span
实例显示的文本可以变成超链接,示例代码如下:
<Label>
<Label.FormattedText>
<FormattedString>
<Span Text="Alternatively, click " />
<Span Text="here"
TextColor="Blue"
TextDecorations="Underline">
<Span.GestureRecognizers>
<TapGestureRecognizer Command="{Binding TapCommand}"
CommandParameter="https://docs.microsoft.com/xamarin/" />
</Span.GestureRecognizers>
</Span>
<Span Text=" to view Xamarin documentation." />
</FormattedString>
</Label.FormattedText>
</Label>
点击超链接后,TapGestureRecognizer
将通过执行其Command属性定义的ICommand
进行响应。另外,由CommandParameter属性指定的URL
将作为参数传递给ICommand
。
XAML页面的代码包含TapCommand
实现:
public partial class MainPage : ContentPage
{
// Launcher.OpenAsync is provided by Xamarin.Essentials.
public ICommand TapCommand => new Command<string>(async (url) => await Launcher.OpenAsync(url));
public MainPage()
{
InitializeComponent();
BindingContext = this;
}
}
效果:
此外,您还可以创建a reusable hyperlink class来使xaml代码更具示例性。