maui-linux/Xamarin.Forms.Controls/GalleryPages/AppLinkPageGallery.cs

81 строка
1.9 KiB
C#

using System;
namespace Xamarin.Forms.Controls
{
public class AppLinkPageGallery : ContentPage
{
public AppLinkPageGallery ()
{
_linkEntry = GetEntry ();
_lbl = new Label {
Text = "You are on a demo page via app url", IsVisible = ShowLabel
};
var btnRegister = new Button { Text = "Index this Page",
Command = new Command (() => Application.Current.AppLinks.RegisterLink (LinkEntry))
};
var btnRemove = new Button { Text = "Remove this Page from index",
Command = new Command (() => Application.Current.AppLinks.DeregisterLink (LinkEntry))
};
var btnClearAll = new Button { Text = "Clear All Indexed Data",
// Command = new Command (() => Application.Current.AppLinks.DeregisterAll ())
};
Content = new StackLayout { Children = { _lbl, btnRegister, btnRemove, btnClearAll } };
}
protected override void OnAppearing ()
{
LinkEntry.IsLinkActive = true;
}
protected override void OnDisappearing ()
{
LinkEntry.IsLinkActive = false;
}
public bool ShowLabel {
get {
return _showlabel;
}
set {
_showlabel = value;
_lbl.IsVisible = _showlabel;
}
}
internal IAppLinkEntry LinkEntry {
get {
return _linkEntry;
}
}
bool _showlabel;
IAppLinkEntry _linkEntry;
Label _lbl;
AppLinkEntry GetEntry ()
{
if (string.IsNullOrEmpty (Title))
Title = "App Link Page Gallery";
var type = GetType ().ToString ();
var entry = new AppLinkEntry {
Title = Title,
Description =$"This is the page {Title} \nof Xamarin Forms Gallery",
AppLinkUri = new Uri ($"http://{App.AppName}/gallery/{type}", UriKind.RelativeOrAbsolute),
IsLinkActive = true,
Thumbnail = ImageSource.FromFile ("seth.png")
};
entry.KeyValues.Add ("contentType", "GalleryPage");
entry.KeyValues.Add ("appName", App.AppName);
entry.KeyValues.Add ("companyName", "Xamarin");
return entry;
}
}
}