我有UWP C#app,我试图从这样的代码调用我的javascript函数:
webView.InvokeScriptAsync("myCoolFunc", new List<string> { });
如果我在* .html文件中有这样的功能,那么一切都很好:
<Script>
function myCoolFunc() {
//do something...
}
</Script>
如果我使用webpack并将生成的捆绑文件的内容移动到脚本标记中,则不会调用我的函数。 Webpack包含我的函数:
<Script>
...
(function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {
Object.defineProperty(exports, "__esModule", { value: true });
const store_1 = __webpack_require__(8);
function myCoolFunc() {
//do something...
}
exports.updateMyFunc = updateMyFunc;
...
</Script>
我应该如何设置webpack.config或webView.invokeFunction以正确调用我的函数?
答案 0 :(得分:0)
如果您不想公开您的方法,您可以只编写一个“通信器”功能,它将调用您的webpack-wrapped myCoolFunc()
,如下所示:
<Script>
function uwpCommunicator( functionToCall ) {
if ( functionToCall === "myCoolFunc" ){
//call myCoolFunc();
}
}
</Script>
您还可以使用eval
功能在页面上运行任意脚本:
await webView.InvokeScriptAsync("eval", new string[] { "//your JS code" });