首页 > 解决方案 > 从 Windows 运行时组件触发 WebView 内的 javascript 事件

问题描述

我正在寻找一种方法来从 C# 代码中触发 javascript 中的自定义事件,该 C# 代码是在具有AllowForWeb属性的 Windows 运行时组件中编写的。我知道像这样的另一种方式(触发从javascript到C#的事件)

public delegate void NotifyAppHandler( string str );

[AllowForWeb]
public sealed class WebViewInjectionObject
{
    public event NotifyAppHandler OnNotifyApp;

    public void NotifyApp( string str )
    {
        OnNotifyApp?.Invoke( str );
    }
}

然后,您可以在 C# 中订阅该事件并像这样从 javascript 触发它

nativeObject.notifyApp(JSON.stringify(callInfo));

哪里nativeObject被注入了WebViewwithAddWebAllowedObject

现在我正在寻找相反的解决方案。我想在 javascript 中创建一个事件,并再次使用来自 Windows 运行时组件的注入对象从 C# 触发它。您可以假设我可以控制将在其中运行的 javascript 代码,WebView并且可以在需要时进行更改。

注意:由于这个问题我不能使用/不想使用,所以需要做这个非常非正统的事情InvokeScriptAsync

标签: javascriptc#eventswebviewuwp

解决方案


推荐阅读