Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 运行Javascript+;C上通用windows应用程序的WinJS代码#_C#_Winjs_Windows 10_Win Universal App - Fatal编程技术网

C# 运行Javascript+;C上通用windows应用程序的WinJS代码#

C# 运行Javascript+;C上通用windows应用程序的WinJS代码#,c#,winjs,windows-10,win-universal-app,C#,Winjs,Windows 10,Win Universal App,不久前,我们开始在Javascript+WinJS上为Win8.1/Win10开发应用程序(我没有决定使用Javascript,但很好,已经完成了)。半年后,我们将产品发布到Windows应用商店,几个月后,我们意识到我们无法在Javascript上实现我们想要的所有功能。所以现在我们决定切换到C#/XAML。但是,我们已经在Javascript+WinJS上编写了相当大的代码库。我们可以在C#上构建新的应用程序(UI,新功能),但也可以重用当前的JS代码。我读过很多MSDN,就我所知,在C#上

不久前,我们开始在Javascript+WinJS上为Win8.1/Win10开发应用程序(我没有决定使用Javascript,但很好,已经完成了)。半年后,我们将产品发布到Windows应用商店,几个月后,我们意识到我们无法在Javascript上实现我们想要的所有功能。所以现在我们决定切换到C#/XAML。但是,我们已经在Javascript+WinJS上编写了相当大的代码库。我们可以在C#上构建新的应用程序(UI,新功能),但也可以重用当前的JS代码。我读过很多MSDN,就我所知,在C#上创建类库并从JS中使用它是可能的,但我们的情况正好相反——我需要将JS+WinJS封装在一些“组件”中,并从新的C#应用程序中使用它。可能吗?我甚至没有在VisualStudio中看到像“通用应用程序Javasctipt库”这样的项目类型

事情可能没那么糟,我们的应用程序是纯JS的(我总是可以把WebView放到表单上并评估一些JS代码)。但是WinJS在WebView中不起作用


所以我不能将我们的JS+WinJS代码用作“类库”,也不能在WebView中运行它。我是否有可能使用其他方法?

WinJS只是一个JS库,它不与任何Windows运行时API绑定。WinJS甚至可以用于web开发()

standart WinJS应用程序模板处理
应用程序.Activated
事件,并在处理程序中调用
WinJS.UI.processAll()
。只要您在
WebView
控件中托管代码,
Application.Activated
事件不会触发,因为应用程序已经激活

问题很容易解决,只需显式调用
WinJS.UI.processAll()

<script>
    WinJS.UI.processAll();
</script>

WinJS.UI.processAll();

WinJS只是一个JS库,它不与任何Windows运行时API绑定。WinJS甚至可以用于web开发()

standart WinJS应用程序模板处理
应用程序.Activated
事件,并在处理程序中调用
WinJS.UI.processAll()
。只要您在
WebView
控件中托管代码,
Application.Activated
事件不会触发,因为应用程序已经激活

问题很容易解决,只需显式调用
WinJS.UI.processAll()

<script>
    WinJS.UI.processAll();
</script>

WinJS.UI.processAll();

事实上,WinJS本身甚至可以在浏览器中运行。但是,我们的JS+WinJS应用程序也使用WinRT类型(Windows.Media、Windows.Storage、Windows.Security等),我无法从运行在WebView中的JS创建这些类型的对象。@Ezh我担心从WebView使用WinRT的唯一方法是通过
ScriptNotify
。事实上,WinJS本身甚至可以在浏览器中运行。但是,我们的JS+WinJS应用程序也使用WinRT类型(Windows.Media、Windows.Storage、Windows.Security等),我无法从运行在WebView中的JS创建这些类型的对象。@Ezh恐怕从WebView使用WinRT的唯一方法是通过
ScriptNotify