小编Dan*_*nny的帖子

JS/.NET 在 MAUI WebView 上交互

我正在将我们的应用程序从 Xamarin 迁移到 MAUI,并且在 Android 和 iOS 上的 WebView 中迁移处理 JS/.NET 交互的代码时遇到了一些困难。让我们重点关注Android。尤其是在 WebView 中从 JS 调用 .NET 代码。

在Xamarin中,我们可以做这样的事情(基本上根据本教程https://learn.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/custom-renderer/hybridwebview):

protected override void OnElementChanged(ElementChangedEventArgs<WebView> e)
{
    base.OnElementChanged(e);

    if (e.OldElement != null)
    {
        Control.RemoveJavascriptInterface("jsBridge");
    }

    if (e.NewElement != null)
    {
        Control.SetWebViewClient(new JavascriptWebViewClient(this, $"javascript: {JavascriptFunction}"));
        Control.AddJavascriptInterface(new JsBridge(this), "jsBridge");
    }
}
Run Code Online (Sandbox Code Playgroud)

public class JavascriptWebViewClient : FormsWebViewClient
{
    private readonly string javascript;

    public JavascriptWebViewClient(HybridWebViewRenderer renderer, string javascript) : base(renderer)
    {
        this.javascript = javascript;
    }

    public override void OnPageFinished(WebView view, string url)
    { …
Run Code Online (Sandbox Code Playgroud)

c# .net-core maui

14
推荐指数
2
解决办法
1万
查看次数

标签 统计

.net-core ×1

c# ×1

maui ×1