在 Maui WebView 中,你可以使用 JavaScript 与 C# 代码进行交互。以下是一种常见的方法,可以通过 JavaScript 调用 C# 代码:
首先,在 C# 中创建一个可供 JavaScript 调用的方法。你可以将这个方法添加到你的 MainPage.xaml.cs 或其他相关的 C# 文件中。例如,创建一个名为 “ShowMessage” 的方法:
using Microsoft.Maui.Controls; using Microsoft.Maui.Essentials; public partial class MainPage : ContentPage { public MainPage() { InitializeComponent(); webView.Source = new UrlWebViewSource { Url = "https://example.com" }; webView.RegisterCallback("showMessage", ShowMessage); } private void ShowMessage(string message) { // 在这里可以处理来自 JavaScript 的消息 MainThread.InvokeOnMainThreadAsync(() => DisplayAlert("Message", message, "OK")); } }
在 JavaScript 中,使用
window.webkit.messageHandlers
对象来调用 C# 方法。在 WebView 加载完成后,你可以使用 JavaScript 调用 C# 方法。例如,在 HTML 中添加一个按钮的点击事件:<button onclick="showMessage('Hello from JavaScript')">Show Message</button>
在 WebView 的加载完成事件中,添加一段 JavaScript 代码,该代码用于监听按钮的点击事件,并调用 C# 方法。例如,在 C# 代码中添加以下代码:
webView.SourceChanged += (s, e) => { var javascript = @" <script> function showMessage(message) { window.webkit.messageHandlers.showMessage.postMessage(message); } document.querySelector('button').addEventListener('click', function() { showMessage('Hello from JavaScript'); }); </script>"; webView.Eval(javascript); };
上述代码中,JavaScript 代码会在 WebView 的加载完成时注入到页面中,并添加一个点击事件监听器,将消息传递给
showMessage
方法。使用
window.webkit
对象,可以像调用其他 JavaScript 方法一样调用showMessage
方法:showMessage('Hello from JavaScript');
当点击按钮或调用 JavaScript 方法时,C# 中的
ShowMessage
方法将被触发,并显示一个对话框。
这就是在 Maui WebView 中使用 JavaScript 调用 C# 代码的基本步骤。你可以根据自己的需求进行更多的自定义和交互操作。
文档更新时间: 2023-07-12 16:18 作者:admin