forked from Marc-K-Plewka/XLabs.HybridPlayground
-
Notifications
You must be signed in to change notification settings - Fork 0
/
pingrid.cs
91 lines (75 loc) · 2.26 KB
/
pingrid.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
using System;
using System.IO;
using System.Reflection;
using System.Threading.Tasks;
using Xamarin.Forms;
using XLabs.Forms.Controls;
using XLabs.Serialization.JsonNET;
namespace XHybrid
{
public class Pingrid : ContentPage
{
HybridWebView hwv;
StackLayout htmlStack;
public Pingrid()
{
Content = loadPinGrid();
}
public View loadPinGrid()
{
hwv = new HybridWebView(new JsonSerializer()) { };
#if __ANDROID__
NavigationPage.SetHasNavigationBar(this, false);
#endif
try
{
//removal of functions so no errors on the onappearing happening more than once
hwv.RemoveAllFunctions();
//register the pingrid generation function
hwv.RegisterNativeFunction("getPinGridValues", input =>
{
return getPinGridValues(input);
});
}
catch (Exception ex)
{
Console.WriteLine(ex.Message + " " + ex.InnerException + " " + ex.StackTrace);
}
hwv.VerticalOptions = LayoutOptions.FillAndExpand;
hwv.HorizontalOptions = LayoutOptions.FillAndExpand;
Padding = new Thickness(10, Device.OnPlatform(20, 0, 0), 10, 5);
htmlStack = new StackLayout()
{
Children =
{
hwv
},
BackgroundColor = Color.White,
HorizontalOptions = LayoutOptions.FillAndExpand,
VerticalOptions = LayoutOptions.FillAndExpand
};
Content = htmlStack;
return Content;
}
public Func<string, object[]> getPinGridValues
{
get
{
return (data) =>
{
return new object[] { 1,2,3,4,5,6 };
};
}
}
protected override void OnAppearing()
{
base.OnAppearing();
hwv.LoadFromContent("PinGrid.html");
}
protected override void OnDisappearing()
{
base.OnDisappearing();
Content = null;
}
}
}