我们计划在JavaScript中为Windows 10编写通用Windows平台应用程序。
我们还需要编写一些自定义运行时组件,最有可能在C#中编写。
我知道可以从主UI线程调用自定义运行时组件。现在的问题是:
可以从 Web Worker 中调用自定义运行时组件吗?
是否需要一些特殊的配置/设置/ api?
谢谢! 涓
答案 0 :(得分:1)
可以从Web Worker中调用自定义运行时组件吗?
我做了一个基本的演示。自定义运行时组件适用于Web Worker。
我做了什么:
我创建了一个自定义运行时组件,并在我基于js的UWP项目中引用它。然后我将Class1.cs修改为Example.cs,如下所示:
public sealed class Example
{
public static string GetAnswer()
{
return "This is Answer";
}
}
在我基于js的UWP项目中,我修改了main.js,如下所示:
// Your code here!
(function () {
"use strict"
var w;
if (typeof Worker !== "undefined")
{
var w = new Worker("ms-appx:///js/webWorkerDemo.js");
w.onmessage = function (evt)
{
document.getElementById("myContent").innerText = evt.data;
w.terminate();
}
}
})();
并将myContent div放在index.html中:
<body>
<div id="myContent"></div>
<script src="js/main.js"></script>
</body>
我在js文件夹下添加了webWorkerDemo.js,除了调用运行时组件的GetAnswer方法和postMessage之外什么都没做:
var str = MyRuntimeComponent.Example.getAnswer();
postMessage(str);
当应用运行时,&#34;这是答案&#34;在应用中正确显示。因此,在Web Worker中使用自定义运行时组件时应该没问题。
以下是完整的示例:WinJSSample。