首页 > 解决方案 > Visual Studio 2019 中 asp.net 核心中的 JavaScript 反应 redux 项目

问题描述

我有一个基于 asp.net core 3 react redux 模板的应用程序。

我正在从一个知道如何将 javascript 函数注入 webview 的移动应用程序中使用这个应用程序,以便在本机 C# 代码和 webview javascript 代码之间进行交互。

为了做到这一点,我需要一个全局方法,其余页面 javascript 可以访问其中的内容,然后可以从移动应用程序调用注入的 javascript。

这是我的全球 javascript。它包含在一个名为 jsinteraction.js 的文件中

export function invokeCSCode(data){
    if (invokeCSharpAction)
       invokeCSharpAction(data);
    else
       console.log('invokeCSharpAction not found');
}

我遇到的问题是,当我运行这个网站然后从我的移动应用程序连接到它时,我得到了一个看起来像 ESLint 错误的东西,整个页面只显示了这个错误。它说:

编译失败

./src/helpers/jsinteraction.js 第 3 行:'invokeCSharpAction' 未定义 no-undef 第 4 行:'invokeCSharpAction' 未定义 no-undef

搜索关键字以了解有关每个错误的更多信息。此错误发生在构建期间,无法消除。

invokeCSharpAction 在应用程序的编译构建期间将不存在,但在移动应用程序注入其代码后将存在。

我认为使用 if (invokeCSharpAction) 将能够处理运行时检测。

我也尝试过在搜索时找到的代码,如下所示:

if (typeof invokeCSharpAction === function)

但我得到同样的错误。

我该怎么做呢?

标签: javascriptasp.netreactjsreduxvisual-studio-2019

解决方案


尝试从窗口访问该功能:

export function invokeCSCode(data){
if (window.invokeCSharpAction)
   window.invokeCSharpAction(data);
else
   console.log('invokeCSharpAction not found');
}

推荐阅读