【发布时间】:2014-10-10 06:43:12
【问题描述】:
我正在使用 Three.js 来尝试实现一个跨平台的 3D 模型查看器。目前我已经让它工作并嵌入到我的 XAML 和 C# 应用程序中,用于 Win 8.1 和带有 WebView 的 Windows Phone 8.1。目前,我正在使用 C# 代码从设备上的文件以及捆绑文件中加载模型(三角形网格)。问题在于,这意味着我必须从 C# 为我想要添加的每个三角形调用一个 JavaScript 函数,这会使 UI 有一段时间没有响应。我曾尝试异步运行脚本并异步运行加载程序,但它并没有真正帮助,因为所有 JS 函数调用都需要由 Core Dispatcher 处理,否则我会收到无效的线程访问异常。一开始我并没有意识到这一点,并认为在 C# 中进行加载会更简单且性能更高。我现在可能不得不重做 JS 中的加载器...
我现在需要询问的是关于我应该如何从 JavaScript 访问文件的一些信息。我知道 Windows RT 支持来自 JS 的文件访问 API,但我猜这更适用于整个 JS 应用程序,因为它似乎无法在 WebView* 内部工作。我也更喜欢跨平台的东西,因为这也需要适用于 Windows 桌面、iOS、Android,可能还有 Mac 和 Linux,那么我最好的选择是什么?
*我在我的 WP 8.1 应用程序中尝试了http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.pickers.fileopenpicker.aspx 的 JS,但没有出现文件选择器。我的 WebView 似乎确实冻结了,但我也没有出现任何异常或弹出。
PS。我有一种感觉,可能归结为我必须将文件复制到 JS 可以访问的临时文件夹中。这并不理想,因为复制会浪费时间,但如果这是我唯一的选择,那么我可能不得不去做。如果这是我唯一的选择,我将不胜感激实现它的一些帮助,因为 JavaScript 真的不是我的语言,我只是因为 Three.JS 才使用它...
【问题讨论】:
-
你找到解决办法了吗?
标签: c# javascript webview windows-8.1 windows-phone-8.1