Как вызвать JavaScript из приложения Xamarin.Forms без использования Uno.UI? - PullRequest
1 голос
/ 13 февраля 2020

У меня есть приложение Xamarin.Forms, и оно проецируется на WASM через Uno Platform . Мне нужно открыть веб-ссылку после нажатия или нажмите. Я решаю это с:

 try // Uwp & iOS & Android
            {
                await Browser.OpenAsync(new Uri("http://localhost"), BrowserLaunchMode.SystemPreferred); // Open url in-app browser for iOS & Android- native in UWP
            }
            catch (NotImplementedInReferenceAssemblyException ex) //Wasm falls here because lack of Xamarin.Essentials.
            {
                await DisplayAlert("Hata", "Not supported on WASM", "Anladım"); // Show the info about exception.



            }

для Xamarin. Android & iOS и UWP (Windows). Однако Xamarin.Essentials еще не может работать на WASM. Поэтому мне нужно вызвать Javascript и запустить этот код:

function openPage(x) {
    window.open(x);
}

Я пытаюсь использовать UNO.Foundation для

WebAssemblyRuntime.InvokeJS("(function(){location.href=\"https://www.wikipedia.com/\";})();");

Однако это мешает классам пользовательского интерфейса UWP и ломает мой проект. Как я могу вызвать Javascript со страницы Xamarin.Forms C# бэкэнд без использования класса UNO.Foundation? Спасибо.

1 Ответ

1 голос
/ 14 февраля 2020

Вы можете использовать гибридное веб-представление, а затем вводить код JavaScript для определения каждого клика по этому веб-представлению https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/custom-renderer/hybridwebview

...