MainActivity.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using Android.App;
  2. using Android.OS;
  3. using Android.Runtime;
  4. using Android.Webkit;
  5. using Android.Widget;
  6. using AndroidX.AppCompat.App;
  7. using LyricShow.WebInterop;
  8. using Newtonsoft.Json;
  9. namespace LyricShow.Droid
  10. {
  11. [Activity(Label = "LyricShow", MainLauncher = true)]
  12. public class MainActivity : AppCompatActivity
  13. {
  14. private WebView _mainWebView;
  15. protected override void OnCreate(Bundle savedInstanceState)
  16. {
  17. base.OnCreate(savedInstanceState);
  18. Xamarin.Essentials.Platform.Init(this, savedInstanceState);
  19. // Set our view from the "main" layout resource
  20. SetContentView(Resource.Layout.activity_main);
  21. FindViewById<Button>(Resource.Id.PutButton).Click += PutButton_Click;
  22. #if DEBUG
  23. WebView.SetWebContentsDebuggingEnabled(true);
  24. #endif
  25. _mainWebView = FindViewById<WebView>(Resource.Id.MainWebView);
  26. _mainWebView.Settings.JavaScriptEnabled = true;
  27. _mainWebView.LoadUrl("https://dev.topcl.net/");
  28. }
  29. private void PutButton_Click(object sender, System.EventArgs e)
  30. {
  31. PutLyricShowData("Brrrrrrrrr from Xamarin Android");
  32. }
  33. private void PutLyricShowData(object obj)
  34. {
  35. _mainWebView.EvaluateJavascript($"putLyricShowData({JsonConvert.SerializeObject(obj)})", null);
  36. }
  37. public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
  38. {
  39. Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
  40. base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
  41. }
  42. }
  43. }