1

我有一个 Xamarin.Forms 应用程序,它通过Uno Platform投影到 WASM 。单击或点击后,我需要打开一个网络链接。我用以下方法解决它:

 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 UI 类并破坏我的项目。如何在不使用 UNO.Foundation 类的情况下从 Xamarin.Forms 页面 C# 后端调用 Javascript?谢谢。

4

1 回答 1

1

您可以使用混合 webview 然后注入 JavaScript 代码来检测此 web 视图上的每次点击 https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/custom-renderer/hybridwebview

于 2020-02-13T23:41:59.137 回答